Python网络爬虫学习笔记(五)

优采云 发布时间: 2020-08-18 18:25

  Python网络爬虫学习笔记(五)

  微信公众号文章爬取

  以搜狗的陌陌搜索平台“”作为爬取入口,可以在搜索栏输入相应关键词来搜索相关微信公众号文章。我们以“机器学习”作为搜索关键词。可以看见搜索后的地址栏中内容为:

  %E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0&_sug_type_=&sut=1872&lkt=1%2C86%2C86&s_from=input&_sug_=n&type=2&sst0=95&page=2&ie=utf8&w=01019900&dr=1

  通过观察,可以发觉如此几个关键数组:

  type:控制检索信息的类型query:我们恳求的搜索关键词page:控制页数

  所以我们的网址结构可以构造为:

  关键词&type=2&page=页码

  然后,我们在每一个搜索页中爬取文章的思路是:

  检索对应关键词得到的相应文章检索结果,并在该页面上将文章的链接提取下来在文章的链接被提取以后,根据这种链接地址采集文章中的具体标题和内容

  通过查看文章列表页的源代码可以找到相应文章的URL以及要爬取的内容,列表页面如下:

  

  其中第一篇文章网址部份的源代码如下所示:

  

机器学习法则:ML工程的最佳实践

图片源自:Westworld Season 2作者无邪机器学习研究者,人工智障推进者.Martin Zinkevich 在2016年将 google 内容多年关于机器学...

程序人生document.write(timeConvert('1526875397'))

  所以我们可以将提取文章网址的正则表达式构造为:

  '

  这样就可以依据相关函数与代码提取出指定页数的文章网址。但是依据正则表达式提取出的网址不是真实地址,会出现参数错误。提取出的地址比真实地址多了一些“&”字符串,我们通过url.replace("amp;","")去掉多余字符串。

  这样就提取了文章的地址,可以依照文章地址爬取相应网页,并通过代理服务器的方式,解决官方屏蔽IP的问题。

  整个爬取陌陌文章的思路如下:

  建立三个自定义函数:实现使用代理服务器爬去指定网址并返回结果;实现获得多个页面的所有文章链接;实现依据文章链接爬取指定标题和内容并写入文件中。使用代理服务器爬取指定网址的内容实现获取多个页面的所有文章链接时,需要对关键词使用urllib.request.quote(key)进行编码,并通过for循环一次爬取各页的文章中设置的服务器函数实现。实现依据文章链接爬取指定标题和内容写入对应文件,使用for循环一次爬取。代码中假如发生异常,要进行延时处理。

  具体代码如下:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线