微信公众号文章爬取之技术剖析【总结更新中】2019.05.16

优采云 发布时间: 2020-08-12 07:43

  技术路线剖析

  Step 0:创建公众号命名的文件夹

  Step 1:GET恳求到搜狗陌陌引擎,以微信公众号中文名称作为查询关键字

  Step 2:从搜索结果页中解析出公众号主页链接

  Step 3:Selenium+PhantomJs获取js异步加载渲染后的html

  Step 4:检测目标网站是否进行了封锁

  Step 5:使用PyQuery,从Step 3获取的html中解析出公众号文章列表的数据

  Step 6:把陌陌文章数据封装成字典的list

  Step 7:把Step 5的字典list转换为Json

  Step 8:写文件

  Bug修正

  由于文章写于2017年4月,距今两年多,python运行环境发生变化较大,故借助作者提供的公众号【DataBureau】进行调试程序。以下为调试中出现的问题及解决方式:

  问 题 1:Selenium+PhantomJs获取js异步加载渲染后的html

  异常提醒:WebDriverException: Message: 'phantomjs.exe' executable needs to be in PATH.

  问题剖析: 已根据文章中设置‘'phantomjs.exe’路径,依旧报错。后搜索到用Python做爬虫的诸位,不要再用PhantomJS了,文中提及 新版本的Selenium不再支持PhantomJS了,请使用Chrome或Firefox的无头版本来代替,于是推测是不是Selenium更新后遗留的问题。

  解决方式:既然PhantomJS已于2018年3月4日官宣不再对其进行更新,因此也就弃用此种形式进行动态爬虫。参照PhantomJS在Selenium中被标记为过时的应对举措一文,转用Selenium+Headless Chrome技术

  如何使用Headless Chrome

  Headless模式是Chrome 59中的新特点,要使用Chrome须要安装chromedriver。

  from selenium import webdriver

from selenium.webdriver.chrome.options import Options

chrome_options = Options()

chrome_options.add_argument('--headless')

chrome_options.add_argument('--disable-gpu')

driver = webdriver.Chrome(chrome_options=chrome_options)

driver.get("https://cnblogs.com/")

  其他用法与PhantomJS基本相同。

  更多资料请查看官方文档。

  参考资料:4.微信公众号文章批量采集导出---小V公众号文章下载器

  

  微信公众号文章批量采集导出---小V公众号文章下载器.png

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线