python web页面元素提取_从列表元素中提取的Web爬虫程序

这段代码演示了如何利用BeautifulSoup库从Wikipedia页面中抓取'20世纪'事件列表。它首先找到指定世纪的标题,然后获取其后续的无序列表。对于列表中的每一项,尝试提取日期并转换为'%d/%m/%Y'格式,如果日期格式不正确,则打印事件文本。
摘要由CSDN通过智能技术生成

问题是-有一些不相关的li标记不包含您需要的数据。在

更具体一点。例如,如果您想获得“20世纪”事件的列表,请首先找到标题并从其父级的following ^{} sibling获取事件列表。此外,并非列表中的每个项目都有%B %d, %Y格式的日期-您需要通过try/except块来处理它:import urllib2

from datetime import datetime

from bs4 import BeautifulSoup

page1 = urllib2.urlopen("http://en.wikipedia.org/wiki/List_of_human_stampedes")

soup = BeautifulSoup(page1)

events = soup.find('span', id='20th_century').parent.find_next_sibling('ul')

for event in events.find_all('li'):

try:

date_string, rest = event.text.split(':', 1)

print datetime.strptime(date_string, '%B %d, %Y').strftime('%d/%m/%Y')

except ValueError:

print event.text

印刷品:

^{pr2}$

更新版本(获取所有低于一个世纪的ul组):events = soup.find('span', id='20th_century').parent.find_next_siblings()

for tag in events:

if tag.name == 'h2':

break

for event in tag.find_all('li'):

try:

date_string, rest = event.text.split(':', 1)

print datetime.strptime(date_string, '%B %d, %Y').strftime('%d/%m/%Y')

except ValueError:

print event.text

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值