
一、首先引入 requests 和 etree 模块
注:当直接用 pip install lxml 下载不了 lxml 模块时,可能是国内的镜像出现了问题,可以加入豆瓣镜像来帮助下载(网上有说清华的、阿里云的、中科大的,就我的实验来看,豆瓣是最管用的),代码如下:
pip install 模块名 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
最开始引入和添加项目的代码如下:
1、点到微博相应网页,点击鼠标右键,点击检查,点击最上方Network模块,会发现没有抓取到的包,此时不要着急,直接将网页刷新,会发现抓取到了很多包,点击最上面那个包(也即type为document的包)。
2、往下滑动,在我用红色笔圈住的地方就是cookie和User-Agent啦,然后直接复制粘贴到代码中就可以啦。
1、最便捷的方法自然是直接复制粘贴xpath,这里建议用谷歌浏览器,并且在谷歌浏览器上下载插件xpath helper,这会对你的xpath很有帮助哦
2、鼠标放到文章标题那里,然后右键检查,此时会直接在网页源码中标记出来,鼠标放到标记出的网页源码,点击鼠标右键,会出现copy,鼠标移过去,会出现很多copy的对象,咱就copy xpath就可以啦,将它粘贴在xpath helper中,会在results栏出现该篇文章的名称
3、不着急,看看网页源代码,每篇文章的位置是从哪个节点分开的,然后将xpath helper粘贴的代码中的该节点div后的“[]”删除,看看在results栏是不是出现了所有文章的名称,如果是这样,那说明你成功的找到所有文章对应的xpath了。
4、上面的方法治标不治本,授人以鱼不如授人以渔,xpath具体的语言表如下:
具体代码如下:
这里呢,就定位xpath,用for循环遍历列表,取得这一页的每一条链接,然后转到下一页,通过xpath定位获取下一页的链接
四、定义run,代码如下:
五、最终运行,代码如下:
到此为止,我们就已经得到了搜索结果的所有链接啦,得到链接之后呢,我直接用的是集搜客软件进行爬取,自己定义规则(自己选择链接对应的文章里你想爬取的部分)之后,直接保存规则,点击爬数据之后,爬取完毕时,将所有网址添加上去,进行集搜,因为网页结构一致,所以接下来就是电脑自己爬啦,咱们就解放双手啦。当然了,会有一部分爬取失败,这是因为这部分文章是微博引用的别的网站的文章,与微博文章的网页结构不一样。
okk,小课程完毕啦,给大家附上完整的代码:
总结
以上是内存溢出为你收集整理的用python爬虫爬取微博文章页的搜索结果(附代码讲解与整套代码)全部内容,希望文章能够帮你解决用python爬虫爬取微博文章页的搜索结果(附代码讲解与整套代码)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)