原标题:简单易学的Python爬虫教程!新手必看
二、抓取前的分析
以Chrome为例,抓取前的分析步骤如图:
三、开始撰写第一只网络爬虫
Requests库
网络资源撷取套件
改善Urllib2的缺点,让使用者以最简单的方式获取网络资源
jupyter
使用jupyter来抓取网页并打印在浏览器中,再按 Ctrl-F 查找对应的内容,以确定我们要爬去的内容在该网页中。
测试示例:
四、用BeautifulSoup4剖析网页元素
测试示例:
五、BeautifulSoup基础操作
使用select找出含有h1标签的元素
使用select找出含有a的标签
使用select找出所有id为title的元素(id前面需要加#)
使用select找出所有class为link的元素(class前面需要加.)
使用select找出所有a tag的href链接
六、观察如何抓取新浪新闻信息
关键在于寻找CSS定位
Chrome开发人员工具(进入开发人员工具后,左上角点选元素观测,就可以看到了)
Chrome寻找元素定位.png
Firefox开发人员工具
InfoLite(需
七、制作新浪新闻网络爬虫
抓取时间、标题、内容
抓取新闻内文页面
内文资料信息说明图.png
获取新闻内文标题、时间、来源
其中涉及时间和字符串转换
整理新闻内文、获取编辑名称
整理新闻内文步骤:
最终简写为一句话。
抓取新闻评论数
解释:
评论是是通过JS代码传过来的;既然是JS,那么通过AJAX传过来的概率很高,于是点到 XHR中看,但是发现Response中没有出现总评论数 2 ; 然后就只能去 JS 里面了,地毯式搜索,找哪个Response里出现了总评论数 2 ,终于找到了。
找到链接和请求方式
今天补的截图,评论数实时增加,请不要觉得奇怪 ^_^
然后就可以撸码了。
解释:
var data={......} 看着很像是个 json 串,去掉 var data= ,使其变为 json 串。
可以看到, jd 串中就是评论的信息了。
回到Chrome开发工具中,浏览评论数量。
获取新闻标识符(新闻ID)
方式1:切割法
方式2:正则表达式
八、建立获取评论数函数
做一个总整理,把刚刚取得评论数的方法整理成一个函数。之后有新闻网页的链接丢进来,可以通过这个函式去取得它的总评论数。
九、建立新闻内文信息抽取函数
十、从列表链接中取出每篇新闻内容
如果 Doc下面没有我们想要找的东西,那么就有理由怀疑,这个网页产生资料的方式,是通过非同步的方式产生的。因此需要去 XHR和 JS下面去找。有时候会发现非同步方式的资料 XHR下没有,而是在 JS下面。这是因为这些资料会被 JS的函式包装,Chrome的开发者工具认为这是JS文件,因此就放到了 JS下面。在 JS中找到我们感兴趣的资料,然后点击 Preview
预览,如果确定是我们要找的,就可以去 Headers中查看 Request URL和 Request Method了。一般 JS中的第一个可能就是我们要找的,要特别留意第一个。
1、选择Network标签
2、点选JS
3、 找到页面链接page=2
处理分页链接
注意头尾,需要去掉头和尾,将其变成标准的 json 格式。
十一、建立剖析清单链接函数
将前面的步骤整理一下,封装到一个函式中。
十二、使用for循环产生多页链接
十三、批次抓取每页新闻内文
十四、 使用pandas整理数据
Python for Data Analysis
源于R
Table-Like格式
提供高效能、简易使用的资料格式(Data Frame)让使用者可以快速操作及分析资料
十五、保存数据到数据库
大家感兴趣的可以试一试,欢迎讨论交流~~~