【发布时间】:2015-01-15 11:43:29
【问题描述】:
我对任何形式的网络抓取都非常陌生,我一直在尝试接触 Python,并且听说网络抓取是让自己接触 Python 的好方法。因此,经过多次 Google 搜索后,我最终归结为使用两个强烈推荐的模块:Requests 和 BeautifulSoup。我已经阅读了相当多的内容,并对如何使用它们有了基本的了解。
我找到了一个非常基本的网站(基本没有太多的内容或 javascript 之类的东西,使得解析 HTML 更容易),我有以下代码:
import requests
from bs4 import BeautifulSoup
soup = BeautifulSoup(requests.get('http://www.basicwebs.co.uk/contact.htm').text)
for row in soup('div',{'id': 'Layer1'})[0].h2('font'):
tds = row.text
print tds
此代码有效。它产生以下结果:
BASIC
WEBS
Contact details
Contact details
如果您花几分钟检查此页面上的代码,这是正确的结果(我假设)。现在,问题是,虽然这段代码有效,但如果我想获得页面的不同部分怎么办?就像页面上的小段落一样,“如果您有兴趣拥有一个由我们设计和托管的网站,请通过电子邮件或电话与我们联系。” - 我的理解是简单地将索引号更改为该文本所在的相应标题,但是当我更改它时,我收到一条消息,表明列表索引超出范围。
有人可以帮忙吗? (尽可能简单)
我使用的是 Python 2.7.8
【问题讨论】:
标签: html parsing python-2.7 beautifulsoup python-requests