Python爬虫:爬取人人都是产品经理的数据
2017-05-22 12:53
826 查看
爬取内容:
人人都是产品经理首页(www.woshipm.com)左侧【最新文章】下如图样式的文章标题、浏览量和缩略图。
思路:
1. 用BeautifulSoup解析网页
变量名 = BeautifulSoup(网页信息,'lxml')
2. 描述要爬取的内容在哪儿
变量名 = 变量名.select()
3. 爬取出我们想要的内容
接下来看具体实现。
1. 我们需要先安装将使用到的库:BeautifulSoup、requests、lxml,安装方法参见我之前的一篇文章:《Python入门:如何使用第三方库?》。其中BeautifulSoup和lxml是常用的第三方库,用来解析网页。然后插入BeautifulSoup和requests库。
第一行:写明我们是从哪个网页中获取信息;
第二行:web_data为变量名,用requests库的get来请求这个网页中的信息;
第三行:soup为变量名,调用BeautifulSoup和lxml库来解析网页,其中web_data.text为我们要获取的网页的文本信息;
第四行:写明变量titles的具体位置,使用select方法来实现,括号内为标题在网页中的位置,位置的获取方法如下:
用Google浏览器打开该页面——鼠标移入标题处,右键选择【检查】——右侧可以看到标题对应的代码,鼠标放置代码处右键【Copy】——选择【Copy selector】。BeautifulSoup支持selector,不支持XPath。
这时可以获得标题的路径,复制出来的路径应该是个比较长的路径,我删去了前面的部分,保留了标题前的2-3层来代表其路径。
第五行pageviews、第六行imgs方法同上。
3. 做好上面两步后,接下来我们要爬取出我们的目标信息,并将它们装入字典中,关于字典的用法在文章《Python入门:数据结构的4种基本类型》中有说明。
运行程序后,可以得到我们想要的结果(woshipm首页默认加载的10篇文章数据)。
最后,附完整代码:
建议大家可以使用类似的方法去爬取下比如作者信息、收藏量等,或换个网页做新的尝试。Learning by doing。
操作环境:Python版本,3.6;PyCharm版本,2016.2;电脑:Mac
----- End -----
作者:杜王丹,微信公众号:杜王丹,互联网产品经理。
人人都是产品经理首页(www.woshipm.com)左侧【最新文章】下如图样式的文章标题、浏览量和缩略图。
思路:
1. 用BeautifulSoup解析网页
变量名 = BeautifulSoup(网页信息,'lxml')
2. 描述要爬取的内容在哪儿
变量名 = 变量名.select()
3. 爬取出我们想要的内容
接下来看具体实现。
1. 我们需要先安装将使用到的库:BeautifulSoup、requests、lxml,安装方法参见我之前的一篇文章:《Python入门:如何使用第三方库?》。其中BeautifulSoup和lxml是常用的第三方库,用来解析网页。然后插入BeautifulSoup和requests库。
from bs4 import BeautifulSoup import requests2. 插入好第三方库后,需要描述我们想要爬取的信息在哪儿。
url = 'http://www.woshipm.com' web_data = requests.get(url) soup = BeautifulSoup(web_data.text,'lxml') titles = soup.select('h2.stream-list-title > a') pageviews = soup.select('footer > span.post-views') imgs = soup.select('div.stream-list-image > a > img')我们逐行来看下。
第一行:写明我们是从哪个网页中获取信息;
第二行:web_data为变量名,用requests库的get来请求这个网页中的信息;
第三行:soup为变量名,调用BeautifulSoup和lxml库来解析网页,其中web_data.text为我们要获取的网页的文本信息;
第四行:写明变量titles的具体位置,使用select方法来实现,括号内为标题在网页中的位置,位置的获取方法如下:
用Google浏览器打开该页面——鼠标移入标题处,右键选择【检查】——右侧可以看到标题对应的代码,鼠标放置代码处右键【Copy】——选择【Copy selector】。BeautifulSoup支持selector,不支持XPath。
这时可以获得标题的路径,复制出来的路径应该是个比较长的路径,我删去了前面的部分,保留了标题前的2-3层来代表其路径。
第五行pageviews、第六行imgs方法同上。
3. 做好上面两步后,接下来我们要爬取出我们的目标信息,并将它们装入字典中,关于字典的用法在文章《Python入门:数据结构的4种基本类型》中有说明。
for title,pageview,img in zip(titles,pageviews,imgs): data = { 'title':title.get_text(), 'pageview':pageview.get_text(), 'img':img.get('src') } print(data)本案例中我们爬取的数据有3个,标题(titles)、浏览量(pageviews)、图片(imgs),我们可以将三个数据放在一起用zip来实现。关于for循环的使用在文章《Python入门:for循环、while循环》中有提到。
运行程序后,可以得到我们想要的结果(woshipm首页默认加载的10篇文章数据)。
最后,附完整代码:
from bs4 import BeautifulSoup import requests
url = 'http://www.woshipm.com' web_data = requests.get(url) soup = BeautifulSoup(web_data.text,'lxml') titles = soup.select('h2.stream-list-title > a') pageviews = soup.select('footer > span.post-views') imgs = soup.select('div.stream-list-image > a > img')
for title,pageview,img in zip(titles,pageviews,imgs): data = { 'title':title.get_text(), 'pageview':pageview.get_text(), 'img':img.get('src') } print(data)
建议大家可以使用类似的方法去爬取下比如作者信息、收藏量等,或换个网页做新的尝试。Learning by doing。
操作环境:Python版本,3.6;PyCharm版本,2016.2;电脑:Mac
----- End -----
作者:杜王丹,微信公众号:杜王丹,互联网产品经理。
相关文章推荐
- 数据分析实战|人人都是产品经理网站(中篇):读者视角
- 【Python】抓取人人都是产品经理的文章
- 秦王宫的入口与出口【人人都是产品经理:9001】
- 产品与产品经理【人人都是产品经理:9003】
- 绩效考核的最高境界【人人都是产品经理:9032】
- 给大家几个不花钱看书的办法【人人都是产品经理】
- 人人都是产品经理(互联网产品经理的第一本书,马云力荐!)
- 产品设计体会(7018)人人都是产品经理
- IT职场人士值得关注的十大博客之二:人人都是产品经理
- 绩效考核的哲学窘境【人人都是产品经理:9030】 推荐
- 运营的短期与长期效果【人人都是产品经理:9014】
- 电子书现在下载,实体书下周开卖【人人都是产品经理】
- 做人要有逻辑【人人都是产品经理:9004】
- 道理与例子【人人都是产品经理:9009】
- 灵魂园林里的植物【人人都是产品经理:9008】
- 如何平衡产品质量与项目时间【人人都是产品经理:9031】
- 你帮我剥个桔子吧【人人都是产品经理:9002】
- “版权保护”的年限设计【人人都是产品经理:9007】
- 信息不完备下的决策【人人都是产品经理:9011】
- 人人都是产品经理【转】