Python 网页爬虫与获取 HTML 源代码

27 投票
5 回答
117225 浏览
提问于 2025-04-16 03:05

我哥哥想让我用Python写一个网页爬虫(我是自学的),我会一些C++、Java,还有一点HTML。我现在用的是2.7版本,并且在看Python的库,但我遇到了一些问题。

1. httplib.HTTPConnectionrequest这些概念对我来说是新的,我不太明白它们是不是像cookie那样下载一个HTML脚本,还是说它们是一个实例。如果这两者都能做到,那我能得到一个网页的源代码吗?还有,有哪些词汇是我需要了解的,以便修改页面并返回修改后的页面。

顺便说一下,我需要下载一个页面,并把页面里的图片替换成我自己的。

另外,如果你们能告诉我你们对2.7和3.1版本的看法,那就太好了。

5 个回答

6

如果你使用的是 Python > 3.x 版本,那么你不需要安装任何额外的库,因为这些功能已经直接包含在Python的框架里了。之前的 urllib2 包已经改名为 urllib

from urllib import request

response = request.urlopen("https://www.google.com")
# set the correct charset below
page_source = response.read().decode('utf-8')
print(page_source)
11

这是一个使用 python3requests 库的例子,正如 @leoluk 提到的:

pip install requests

脚本文件名是 req.py:

import requests

url='http://localhost'

# in case you need a session
cd = { 'sessionid': '123..'}

r = requests.get(url, cookies=cd)
# or without a session: r = requests.get(url)
r.content

现在,运行这个脚本,你就能得到本地服务器的 HTML 源代码了!

python3 req.py

48

使用Python 2.7,因为目前它有更多的第三方库。 (编辑:见下文).

我建议你使用标准库中的 urllib2 模块,这样你可以轻松地获取网页资源。

举个例子:

import urllib2

response = urllib2.urlopen("http://google.de")
page_source = response.read()

如果你想解析代码,可以看看 BeautifulSoup

顺便问一下:你具体想做什么呢:

我需要下载一个页面,并把里面的图片替换成我自己的图片。

编辑:现在是2014年了,大部分重要的库都已经移植过来了,如果可以的话,你绝对应该使用Python 3。python-requests 是一个非常好用的高级库,比 urllib2 更容易使用。

撰写回答