Python 网页爬虫与获取 HTML 源代码
我哥哥想让我用Python写一个网页爬虫(我是自学的),我会一些C++、Java,还有一点HTML。我现在用的是2.7版本,并且在看Python的库,但我遇到了一些问题。
1. httplib.HTTPConnection
和request
这些概念对我来说是新的,我不太明白它们是不是像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
这是一个使用 python3
和 requests
库的例子,正如 @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
更容易使用。