获取所有链接页面的 HTML 代码非常容易。
困难的部分是准确提取您正在寻找的内容。如果您只需要标签内的所有代码<body>
,这也不应该是一个大问题;提取所有文本同样简单。但是如果你想要一个更具体的子集,你还有更多的工作要做。
我建议您下载 requests 和 BeautifulSoup 模块(都可以通过easy_install requests/bs4
或更好pip install requests/bs4
)。requests 模块使获取页面变得非常容易。
以下示例获取 rss 提要并返回三个列表:
linksoups
是从提要链接的每个页面的BeautifulSoup实例的列表
linktexts
是从提要链接的每个页面的可见文本列表
linkimageurls
是一个列表列表,其中src
包含从提要链接的每个页面中嵌入的所有图像的 -url
- 例如
[['/pageone/img1.jpg', '/pageone/img2.png'], ['/pagetwo/img1.gif', 'logo.bmp']]
import requests, bs4
# request the content of the feed an create a BeautifulSoup object from its content
response = requests.get('http://rss.slashdot.org/Slashdot/slashdot')
responsesoup = bs4.BeautifulSoup(response.text)
linksoups = []
linktexts = []
linkimageurls = []
# iterate over all <link>…</link> tags and fill three lists: one with the soups of the
# linked pages, one with all their visible text and one with the urls of all embedded
# images
for link in responsesoup.find_all('link'):
url = link.text
linkresponse = requests.get(url) # add support for relative urls with urlparse
soup = bs4.BeautifulSoup(linkresponse.text)
linksoups.append(soup)
linktexts.append(soup.find('body').text)
# Append all text between tags inside of the body tag to the second list
images = soup.find_all('img')
imageurls = []
# get the src attribute of each <img> tag and append it to imageurls
for image in images:
imageurls.append(image['src'])
linkimageurls.append(imageurls)
# now somehow merge the retrieved information.
这可能是您项目的粗略起点。