Python爬虫:爬取人人都是产品经理的数据
爬取内容:
人人都是产品经理首页(www.woshipm.com)左侧【最新文章】下如图样式的文章标题、浏览量和缩略图。

思路:
1. 用BeautifulSoup解析网页
变量名 = BeautifulSoup(网页信息,'lxml')
2. 描述要爬取的内容在哪儿
变量名 = 变量名.select()
3. 爬取出我们想要的内容
接下来看具体实现。
1. 我们需要先安装将使用到的库:BeautifulSoup、requests、lxml,安装方法参见我之前的一篇文章:《Python入门:如何使用第三方库?》。其中BeautifulSoup和lxml是常用的第三方库,用来解析网页。然后插入BeautifulSoup和requests库。
from bs4 import BeautifulSoup import requests
2. 插入好第三方库后,需要描述我们想要爬取的信息在哪儿。
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爬虫:爬取人人都是产品经理的数据的更多相关文章
- Python爬虫 - 爬取百度html代码前200行
Python爬虫 - 爬取百度html代码前200行 - 改进版, 增加了对字符串的.strip()处理 源代码如下: # 改进版, 增加了 .strip()方法的使用 # coding=utf-8 ...
- 用Python爬虫爬取广州大学教务系统的成绩(内网访问)
用Python爬虫爬取广州大学教务系统的成绩(内网访问) 在进行爬取前,首先要了解: 1.什么是CSS选择器? 每一条css样式定义由两部分组成,形式如下: [code] 选择器{样式} [/code ...
- 使用Python爬虫爬取网络美女图片
代码地址如下:http://www.demodashi.com/demo/13500.html 准备工作 安装python3.6 略 安装requests库(用于请求静态页面) pip install ...
- Python爬虫爬取全书网小说,程序源码+程序详细分析
Python爬虫爬取全书网小说教程 第一步:打开谷歌浏览器,搜索全书网,然后再点击你想下载的小说,进入图一页面后点击F12选择Network,如果没有内容按F5刷新一下 点击Network之后出现如下 ...
- python爬虫—爬取英文名以及正则表达式的介绍
python爬虫—爬取英文名以及正则表达式的介绍 爬取英文名: 一. 爬虫模块详细设计 (1)整体思路 对于本次爬取英文名数据的爬虫实现,我的思路是先将A-Z所有英文名的连接爬取出来,保存在一个cs ...
- 一个简单的python爬虫,爬取知乎
一个简单的python爬虫,爬取知乎 主要实现 爬取一个收藏夹 里 所有问题答案下的 图片 文字信息暂未收录,可自行实现,比图片更简单 具体代码里有详细注释,请自行阅读 项目源码: # -*- cod ...
- Python爬虫|爬取喜马拉雅音频
"GOOD Python爬虫|爬取喜马拉雅音频 喜马拉雅是知名的专业的音频分享平台,用户规模突破4.8亿,汇集了有声小说,有声读物,儿童睡前故事,相声小品等数亿条音频,成为国内发展最快.规模 ...
- python爬虫爬取内容中,-xa0,-u3000的含义
python爬虫爬取内容中,-xa0,-u3000的含义 - CSDN博客 https://blog.csdn.net/aiwuzhi12/article/details/54866310
- python爬虫-爬取百度图片
python爬虫-爬取百度图片(转) #!/usr/bin/python# coding=utf-8# 作者 :Y0010026# 创建时间 :2018/12/16 16:16# 文件 :spider ...
随机推荐
- Python:import 与__import__()
首先来说一下两者的区别: import指令做了两件事:1)搜索module,2)绑定到局部变量 内置函数__import__()只做了一件事:搜索module import指令执行过程中是调用__im ...
- 《Java大学教程》—第9章 软件质量
软件质量:可维护性.可靠性.健壮性.可用性. 9.3 可维护性系统维护(maintaining)是指根据需求的变化更新现有系统的过程 9.3.1 封装的重要性连锁反应:对系统某一部分的改变可能会 ...
- shopkeep/spark Dockerfile示例
FROM java:openjdk- ENV HADOOP_HOME /opt/spark/hadoop- ENV MESOS_NATIVE_LIBRARY /opt/libmesos-.so ENV ...
- docker学习笔记(一)-vagrant/docker machine安装docker,阿里云通过docker machine安装docker
首先需要先安装virtualbox https://www.vagrantup.com/ 下载安装vagrant 安装完毕后通过vagrant下载镜像,生成实例 mkdir test_centos7 ...
- 简单的C#TCP协议收发数据示例
参考:http://www.cnblogs.com/jzxx/p/5630516.html 一.原作者的这段话很好,先引用一下: Socket的Send方法,并非大家想象中的从一个端口发送消息到另一个 ...
- 机器学习算法总结(九)——降维(SVD, PCA)
降维是机器学习中很重要的一种思想.在机器学习中经常会碰到一些高维的数据集,而在高维数据情形下会出现数据样本稀疏,距离计算等困难,这类问题是所有机器学习方法共同面临的严重问题,称之为“ 维度灾难 ”.另 ...
- Linux:Day11(下) ip命令及配置文件方式
配置Linux网络属性:ip命令 ip [ OPTIONS ] OBJECT { COMMAND | help } OBJECT := { link | addr | route } link OBJ ...
- web_ui各种元素的操作
一:元素在最下方,需要拉动滚动条才可显示 1.js中没有xpath定位元素的方法,只有id.tagname,name 2.在python中用这个方法实现 全部显示是这样的 二:针对区域划分,这里有很多 ...
- jenkins+svn+python+appium启动+mail+html报告
第一步:jenkins从svn中获取最新的测试代码 1.jenkins启动,进入jenkins目录,使用“java -jar jenkins.war”启动(安装后,jenkins已自启动,不用再自己启 ...
- 阿里云配置tomcat https
阿里云申请免费的SSL证书和配置https,可参考该篇博文:https://blog.csdn.net/baidu_19473529/article/details/70037976 虽然有现成的,不 ...