IPIDEA丨如何使用海外代理IP采集百度经验?

作者:IPIDEA

2020-03-30 15:45:13

本篇文章介绍一下如何简单直接地使用Python获取百度经验的文章内容,在开始之前相信大家已经对python语法基础已经有所掌握,不过如果你刚刚才开始学习也没关系,不妨直接跟着我们的代码,体验一下网络数据爬取的乐趣。

  • 概况

    • 语言:Python

    • 涉及的库:requests, lxml, pymysql

    • 难点:页面结构解析以及理清爬取顺序逻辑

 

 

  • 网页分析

    磨刀不误砍柴工,爬取之前我们需要打开网站,对网站路由层级及数据所在页面结构有足够充分地了解,以避免盲目地获取错误内容。


image-20200327162652249.png

 

为了完整地获取尽量多的经验文章,我们首先要所有的分类,通过查看页面源码发现,文章分类这部分内容是以静态形式存在,那么获取这部分内容就比较容易了。

   

然后任意选择一个分类打开,分析第二层级页面的结构。这个页面已经展示了部分文章列表,我们只需要依次选择各个分类标签以及分页标签就能获取这个分类下所能获得的所有文章链接了。   image-20200327165606822 

 image-20200327165606822.png


而页面内几个标签和分页的链接参数构成也十分简单,我们需要做的就是保存遍历所有的页面链接,获取所有文章链接并保存。 image-20200327165838271 


image-20200327165838271.png


  • 这样保存所有获取的文章链接就可以访问每个文章页面获取文章内容了。

  • 编写代码

    按照以上分析的页面层级结构和获取逻辑,接下来我们来用Python一步步编写爬取代码。

    引入我们将会用到的库



  • 新建一个类并初始化一些参数



  • 首先我们需要获取首页的文章所有分类:



运行后我们获取了所有的分类并输出



  • 获取分类页面下的所有文章列表,记得每个分类都有三页哦。


  • 此外我们还需要将获取到的内容保存到数据库中,因此需要编写数据库调用的处理代码



这样我们就完成了所有代码的编写,并且经过了代码调试,但是在正式爬取之前使用代理,通过代理IP访问获取数据,已避免代码被允许访问公开数据,造成前功尽弃。


image-20200327181544370.png

并且数据能够成功写入数据库中



*ipidea提供的服务必须在境外网络环境下使用

热门资讯