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 ...
随机推荐
- C语言经典例题(菜鸟教程100例)
学习c语言基础,怎么能少了菜鸟教程上的100道例题呢,这里整理一下每道题的链接,希望大家能享受学习的乐趣 1,有1,2,3,4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 2,企业发放 ...
- Nginx使用教程(二):Nginx配置性能优化之worker配置
配置Nginx workers <br\>NGINX根据指定的配置运行固定数量的工作进程. 这些工作进程负责处理所有处理. 在下面的章节中,我们将调整NGINX worker参数. 这些参 ...
- node.js—File System(文件系统模块)
文件系统模块概述 该模块是核心模块,提供了操作文件的一些API,需要使用require导入后使用,通过 require('fs') 使用该模块 文件 I/O 是由简单封装的标准 POSIX 函数提供的 ...
- [MCM] K-mean聚类与DBSCAN聚类 Python
import matplotlib.pyplot as plt X=[56.70466067,56.70466067,56.70466067,56.70466067,56.70466067,58.03 ...
- iptables 端口转发规则
玩 vps 的经常要用到端口转发用以实现更快的速度.比如 ovh 机房的网络我这里访问非常慢,用远程桌面会吐血的类型.所以就会用其他的线路作为跳板,比如洛杉矶,香港之类的.再比如如果需要一个日本 ip ...
- 【angularjs】使用angular搭建项目,实现隔行换色
描叙:使用ng-class实现每隔3行换色 代码: <!DOCTYPE html> <html ng-app="myApp"> <head> & ...
- 裸奔的智能插座:博联Broadlink SP2/SP mini的分析、破解
https://www.jianshu.com/p/028b10bc3dd1 智能设备的联动通常采用IFTTT的方式,但这种方式受限于官方软件提供的功能.想要自主地灵活控制,需要有官方SDK,或知道协 ...
- day24 Pythonpython 面向对象设计 类
将一些相同特征和动作的成为类,现有类才能创建对象,对象就是特征和动作的结合体 类:把一类事物的相同特征和动作整合到一起就是类.类是一个抽象概念 对象:就是基于类而创建的一个具的事物(具体存在的),也是 ...
- nginx+tomcat9+redisson+redis+jdk1.8简单实现session共享
一.环境安装 由于资源限制,在虚拟机中模拟测试,一台虚拟机,所有软件均安装到该虚拟机内 安装系统:CentOS Linux release 7.4.1708 (Core) CentOS安装选择版本:B ...
- 玄学bug(1)---注释里面的中文会报错
有时候正常没有问题的程序会报错,可能跟注释里面的中文也有关系 with open('photo1.jpg','rb') as file: data = file.read() #print(data) ...