python爬取网页内容_Python获取网页指定内容(BeautifulSoup工具的使用方法)

Python用做数据处理还是相当不错的,如果你想要做爬虫,Python是很好的选择,它有很多已经写好的类包,只要调用,即可完成很多复杂的功能,此文中所有的功能都是基于BeautifulSoup这个包。

1 Pyhton获取网页的内容(也就是源代码)

page =urllib2.urlopen(url)

contents=page.read()#获得了整个网页的内容也就是源代码

print(contents)

url代表网址,contents代表网址所对应的源代码,urllib2是需要用到的包,以上三句代码就能获得网页的整个源代码

2 获取网页中想要的内容(先要获得网页源代码,再分析网页源代码,找所对应的标签,然后提取出标签中的内容)

2.1 以豆瓣电影排名为例子

网址是http://movie.douban.com/top250?format=text,进入网址后就出现如下的图

20160715203512986

现在我需要获得当前页面的所有电影的名字,评分,评价人数,链接

20160715204259241

由上图画红色圆圈的是我想得到的内容,画蓝色横线的为所对应的标签,这样就分析完了,现在就是写代码实现,Python提供了很多种方法去获得想要的内容,在此我使用BeautifulSoup来实现,非常的简单

#coding:utf-8

'''''

@author: jsjxy'''

importurllib2importrefrom bs4 importBeautifulSoupfrom distutils.filelist importfindall

page= urllib2.urlopen('http://movie.douban.com/top250?format=text')

contents=page.read()#print(contents)

soup = BeautifulSoup(contents,"html.parser")print("豆瓣电影TOP250" + "\n" +"影片名 评分 评价人数 链接")for tag in soup.find_all('div', class_='info'):#print tag

m_name = tag.find('span', class_='title').get_text()

m_rating_score= float(tag.find('span',class_='rating_num').get_text())

m_people= tag.find('div',class_="star")

m_span= m_people.findAll('span')

m_peoplecount= m_span[3].contents[0]

m_url=tag.find('a').get('href')print( m_name+" " + str(m_rating_score) + " " + m_peoplecount + " " + m_url )

控制台输出,你也可以写入文件中

20160715213331107

前三行代码获得整个网页的源代码,之后开始使用BeautifulSoup进行标签分析,find_all方法是找到所有此标签的内容,然后在在此标签中继续寻找,如果标签有特殊的属性声明则一步就能找出来,如果没有特殊的属性声明就像此图中的评价人数前面的标签只有一个‘span’那么就找到所有的span标签,按顺序从中选相对应的,在此图中是第三个,所以这种方法可以找特定行或列的内容。代码比较简单,很容易就实现了,如果有什么地方不对,还请大家指出,大家共同学习。

源代码地址:http://download.csdn.net/detail/danielntz/9577390

转自:https://blog.csdn.net/danielntz/article/details/51861168

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值