Python Web Crawlers和"获取"html源代码

Dan*_*Dan 18 python get web-crawler

所以我的兄弟想让我用Python写一个网络爬虫(自学成才),我知道C++,Java和一些HTML.我使用的是2.7版本,并阅读Python库,但我有几个问题1. httplib.HTTPConnectionrequest概念对我来说是新的,如果它下载如cookie或实例的HTML脚本,我不明白.如果您同时执行这两项操作,您是否获得了网站页面的来源?我需要知道修改页面并返回修改后的页面的一些单词.

仅仅为了背景,我需要下载一个页面并用我拥有的img替换任何img

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

leo*_*luk 43

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

我建议你使用stdlib模块urllib2,它可以让你轻松获得网络资源.例:

import urllib2

response = urllib2.urlopen("http://google.de")
page_source = response.read()
Run Code Online (Sandbox Code Playgroud)

要解析代码,请查看BeautifulSoup.

顺便说一下:你究竟想做什么:

仅仅为了背景,我需要下载一个页面并用我拥有的img替换任何img

编辑:现在是2014年,大多数重要的库已被移植,如果可以,你绝对应该使用Python 3.python-requests是一个非常好的高级库,比它更容易使用urllib2.


Tim*_*imo 9

@leoluk提到的示例python3requests库以及:

pip install requests
Run Code Online (Sandbox Code Playgroud)

脚本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
Run Code Online (Sandbox Code Playgroud)

现在,执行它,你将获得localhost的html源代码!

python3 req.py


Can*_*ner 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)
Run Code Online (Sandbox Code Playgroud)