使用Python(Beautifulsoup)来获取网页上的文本

时间:2013-11-18 14:38:55

标签: python beautifulsoup

我想在网页上提取新闻文本,但到目前为止我还没有成功。

以下是网页源代码的一部分:http://www.legaldaily.com.cn/locality/node_32245.htm

</HR><A class="f14 blue001" href="content/2013-11/01/content_4983464.htm?node=32245" target=_blank><SPAN class="f14 blue001">·</SPAN>玉门工商清理整顿一批无照经营户&nbsp;&nbsp;<SPAN class="f12 black">2013-11-01</SPAN></A> <BR><A class="f14 blue001" href="content/2013-11/01/content_4983441.htm?node=32245" target=_blank><SPAN class="f14 blue001">·</SPAN>临夏州举办涉法涉诉信访工作改革培训班&nbsp;&nbsp;<SPAN class="f12 black">2013-11-01</SPAN></A> <BR><A class="f14 blue001" href="content/2013-11/01/content_4983439.htm?node=32245" target=_blank><SPAN class="f14 blue001">·</SPAN>酒泉市肃州区马营河水闸道路工程顺利通车&nbsp;&nbsp;<SPAN class="f12 black">2013-11-01</SPAN></A> <BR><A class="f14 blue001" href="content/2013-11/01/content_4983401.htm?node=32245" target=_blank><SPAN class="f14 blue001">·</SPAN>酒泉狠抓四环节推进涉法涉诉信访工作改革&nbsp;&nbsp;<SPAN class="f12 black">2013-11-01</SPAN></A> <BR><A class="f14 blue001" href="content/2013-10/30/content_4974324.htm?node=32245" target=_blank><SPAN class="f14 blue001">·</SPAN>酒泉瓜州工商局开展群众路线教育实践活动&nbsp;&nbsp;<SPAN class="f12 black">2013-10-30</SPAN></A> <BR><A class="f14 blue001" href="content/2013-10/29/content_4971723.htm?node=32245" target=_blank><SPAN class="f14 blue001">·</SPAN>酒泉市瓜州县工商局开展酒类市场集中整治&nbsp;&nbsp;<SPAN class="f12 black">2013-10-29</SPAN></A> <BR><A class="f14 blue001" href="content/2013-10/21/content_4948889.htm?node=32245" target=_blank><SPAN class="f14 blue001">·</SPAN>酒泉市信访局开设“道德讲堂”&nbsp;&nbsp;<SPAN class="f12 black">2013-10-21</SPAN></A> <BR><A class="f14 blue001" href="content/2013-10/21/content_4948876.htm?node=32245" target=_blank><SPAN class="f14 blue001">·</SPAN>打造制度建设新亮点 推动酒泉经济发展&nbsp;&nbsp;<SPAN class="f12 black">2013-10-21</SPAN></A> <BR><A class="f14 blue001" href="content/2013-10/18/content_4944212.htm?node=32245" target=_blank><SPAN class="f14 blue001">·</SPAN>酒泉加强行政程序建设提高依法行政水平&nbsp;&nbsp;<SPAN class="f12 black">2013-10-18</SPAN></A> <BR><A class="f14 blue001" href="content/2013-10/16/content_4940043.htm?node=32245" target=_blank><SPAN class="f14 blue001">·</SPAN>酒泉肃州西峰乡进一步落实矛盾排查制度&nbsp;&nbsp;<SPAN class="f12 black">2013-10-16</SPAN></A> <BR>

到目前为止我所做的是:

from bs4 import BeautifulSoup
import re
import urllib2


url = "http://www.legaldaily.com.cn/locality/node_32245.htm"
page = urllib2.urlopen(url)
soup = BeautifulSoup(page.read())

xinwen = soup.find_all('span')

for xw in xinwen:
    print xw

然而,这并不成功。出了什么问题,我怎么能正确地做到这一点?感谢。

2 个答案:

答案 0 :(得分:2)

我发现你可以这样做:

for child in soup.findAll(attrs={'class': "f14 blue001"}):
    print child.getText()

由于您要查找的文本不在html标记内,因此获取所需的确切元素有点棘手。但基本上 - 这里是他们。

几乎可以得到你想要的东西:

·嘉峪关社管中心学习十八届三中全会公报&nbsp;&nbsp;2013-11-18
·
·嘉峪关落实城乡一体化各项民生保障政策&nbsp;&nbsp;2013-11-13
·
·甘肃省工商局发布“双11”消费警示&nbsp;&nbsp;2013-11-11
·
·玉门工商强化执法原则增强柔性执法理念&nbsp;&nbsp;2013-11-11
·
·嘉峪关城乡一体化服务中心多举措树形象&nbsp;&nbsp;2013-11-11
·
·酒泉市瓜州县工商局开展道德讲堂活动&nbsp;&nbsp;2013-11-07
·
·张掖山丹工商推行“三位一体”维权平台&nbsp;&nbsp;2013-11-06
·
·酒泉市肃州区统计局三结合深化廉政教育&nbsp;&nbsp;2013-11-05
·
·兰州工商系统全面开展“冬防”整治活动&nbsp;&nbsp;2013-11-05
·
·玉门市玉门镇工商分局确保秋季市场稳定&nbsp;&nbsp;2013-11-04
·
·敦煌市各乡镇“法律赶集”开展普法宣传&nbsp;&nbsp;2013-11-04
·
·玉门工商清理整顿一批无照经营户&nbsp;&nbsp;2013-11-01
·
·临夏州举办涉法涉诉信访工作改革培训班&nbsp;&nbsp;2013-11-01
·
·酒泉市肃州区马营河水闸道路工程顺利通车&nbsp;&nbsp;2013-11-01
·
·酒泉狠抓四环节推进涉法涉诉信访工作改革&nbsp;&nbsp;2013-11-01
·
·酒泉瓜州工商局开展群众路线教育实践活动&nbsp;&nbsp;2013-10-30
·
·酒泉市瓜州县工商局开展酒类市场集中整治&nbsp;&nbsp;2013-10-29
·
·酒泉市信访局开设“道德讲堂”&nbsp;&nbsp;2013-10-21
·
·打造制度建设新亮点 推动酒泉经济发展&nbsp;&nbsp;2013-10-21
·
·酒泉加强行政程序建设提高依法行政水平&nbsp;&nbsp;2013-10-18
·
·酒泉肃州西峰乡进一步落实矛盾排查制度&nbsp;&nbsp;2013-10-16
·
·甘肃省农产品质量安全检测技能竞赛举行&nbsp;&nbsp;2013-10-14
·
·甘肃省财政厅封存所有公务车辆 杜绝浪费&nbsp;&nbsp;2013-10-09
·
·酒泉肃州总工会做好国庆期间综治维稳工作&nbsp;&nbsp;2013-10-09
·
·酒泉市瓜州县工商局四举措加强队伍建设&nbsp;&nbsp;2013-10-08
·
·甘肃严查教育乱收费:公示之外收费可拒缴&nbsp;&nbsp;2013-10-08
·
·酒泉市瓜州县工商局开展棉花市场联合大检查&nbsp;&nbsp;2013-09-30
·
·酒泉瓜州工商局“绿色通道”助力大学生创业&nbsp;&nbsp;2013-09-29
·
·瓜州非工委召开“非公党建组建周”部署会&nbsp;&nbsp;2013-09-27
·
·酒泉瓜州工商局四措施加强高危行业监管&nbsp;&nbsp;2013-09-26
·
·甘肃省市旅游局联合开展市场大检查&nbsp;&nbsp;2013-09-25
·
·肃州三墩镇组织领导干部参加六五普法考试&nbsp;&nbsp;2013-09-25
·
·酒泉市肃州区总工会着力构建和谐劳动关系&nbsp;&nbsp;2013-09-22
·
·酒泉瓜州非工委“三建”破解非公团建难题&nbsp;&nbsp;2013-09-17
·
·省教育厅重申严禁利用休息日给学生补课&nbsp;&nbsp;2013-09-16
·
·甘肃旅游局发通知 确保《旅游法》实施&nbsp;&nbsp;2013-09-16
·
·瓜州工商局“四措施”加强高危行业监管&nbsp;&nbsp;2013-09-16
·
·酒泉肃州建立工会系统劳动关系预警机制&nbsp;&nbsp;2013-09-12
·
·甘肃省旅游局将开展旅游市场大检查&nbsp;&nbsp;2013-09-11
·
·甘肃省教育厅将对民办学校进行大检查&nbsp;&nbsp;2013-09-11
·
·酒泉市惠民政策添新项为新增高龄老人发放补助&nbsp;&nbsp;2013-09-24
·
·酒泉肃州农牧局召开政风行风评议质询会议&nbsp;&nbsp;2013-09-06
·
·天水麦积区工商局专项整治农村市场秩序&nbsp;&nbsp;2013-09-05
·
·酒泉肃州西文化街社区“四抓四促”保稳定&nbsp;&nbsp;2013-09-05
·
·酒泉瓜州新区工商所调处一起汽车消费纠纷&nbsp;&nbsp;2013-09-04
·
·访酒泉市瓜州县工商局局长殷正国&nbsp;&nbsp;2013-09-03
·
·省教育厅:禁止教师借教师节向学生收取礼物&nbsp;&nbsp;2013-09-03
·
·酒泉肃州总寨镇打响矛盾纠纷专项调处攻坚战&nbsp;&nbsp;2013-09-03
·
·肃州环保局中央农村环境整治项目通过检查&nbsp;&nbsp;2013-08-30

答案 1 :(得分:0)

您必须找到具有类属性值<span>f14的{​​{1}}的下一个元素。使用blue001,然后打印字符串(此示例为next_sibling):

python3

它产生:

from bs4 import BeautifulSoup
import urllib.request as urllib2

url = "http://www.legaldaily.com.cn/locality/node_32245.htm"

soup = BeautifulSoup(urllib2.urlopen(url).read(), 'html')

for span in soup.find_all('span', attrs={'class': ['f14', 'blue001']}):
    print(span.next_sibling.string)