大家好,我是小焦。今天给大家来说一说微信公众号的爬虫,提起这个爬虫我也是一肚子气。为什么呢?本来计划好好的,要做几个功能的。结果人算不如天算,只能草草了事了。老马的反爬还是有点厉害的。最初的设想是爬到公众号的文章,然后找到我们需要的公众号,然后将里面的内容提取的。结果遇到反爬,换cookie,使用selenium都会被检测到。技术薄微,也只能暂时止步。

爬虫思路:

起初,我是准备写一个类,完成爬取动作,后期进行调用的,结果发现没有函数好用,就进行了修改。整体流程就是利用搜狗微信的功能,来完成指定公众号的文章爬取。然后将文章链接保存到word文档中。

在研究搜狗微信的过程中,发现了几个小毛病。搜狗微信就跟搜索引擎差不多,作者发表一篇文章,要隔断时间才会在它上面显示,有的快有的慢。包括微信客户端,手机上推文和电脑端的也有时间差,有的甚至一直没更新。这也是我放弃此爬虫的原因吧。好了不讲这些了,来看看下面的代码吧,作为小白,乱写一通,大神不喜勿喷啊。

准备工作:

python3

调用的库:requests,urllib,pyquery,time,docx-python,datetime

这几个库就不用多做解释了,会爬虫的小伙伴经常会用到。docx是word的库,pyquery是解析库,大伙都认识。下面是我写的代码,大家仅供参考吧。

# 2020年8月29日

# 本次目标利用搜狗微信网站,进行指定公众号文章最新内容爬取。

import requests

from urllib.parse import quote

from pyquery import PyQuery as pq

import time

from docx import Document

from datetime import datetime

import random

header = [

'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36',

'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3775.400 QQBrowser',

]

# 该函数获取结果页面内容

def get_page(page,name):

s = quote(name)

headers = {

'User-Agent':random.choice(header),

}

url = 'https://weixin.sogou.com/weixin?type=2&page={}&s_from=input&query={}&ie=utf8&_sug_=n&_sug_type_='.format(page,s)

a = requests.get(url,headers=headers)

return a.text

# 找出对应公众号的文章链接和标题,因为搜狗微信只显示前10页,所以我们也只抓取前10页,找出两天类的文章并输出

def get_article(name):

for i in range(1,11):

q = pq(get_page(i,name))

lists = q('.news-list li').items()

for list in lists:

if list('.s-p a').text() == name:

# 获取文章的时间戳

t = list('.s-p').attr('t')

# 这里是计算当前的时间戳

shijian = int(time.time())

# 这里是将两天内的文章搜索出来,并返回

if (shijian - int(t)) < 172800:

title = list('.txt-box h3 a ').text() # 获取文章标题

if title == '':

title = '无最新报价'

url = 'https://weixin.sogou.com' + list('.txt-box h3 a ').attr('href') # 获取文章链接

if url == '':

url = ''

print(title,url)

return title,url

# 上面函数已经拿到文章的名字和文章链接,现在来进行文章内容分析,(这块代码放弃了,因为公众号正文是反爬的加入cookie和selenium都会被劫住,所以暂时不搞这一块)

# def get_content(self,title,url):

# brower = webdriver.Chrome()

#

# time.sleep(2)

# print(url)

# brower.get(url)

# html = brower.page_source

# h = pq(html)

# print(h)

#

# # lists = h('.rich_media_content p').items()

# # for list in lists:

# #

# # print(list.text())

# 这里我们建立一个函数完成所有的文章标题链接写入到word文档中

lists = ['西安腾乐电子','西安新志电子']

def execute():

# 创建一个空文档

document = Document()

#给文档添加一个标题,后面加上时间

header = '公众号最新报价单({})'.format(datetime.now().strftime('%a,%b-%d %H:%M'))

document.add_heading(header,level=0)

for list in lists:

print(list)

time.sleep(3)

title,url = get_article(list)

if title == '':

continue

document.add_paragraph(title,style='List Number')

document.add_paragraph('链接:' + url + '\n')

document.add_paragraph('来自:' + list)

document.save('最新报价.docx')

if __name__ == '__main__':

execute()

源码地址:https://github.com/zhanjiuyou/weixin.git

上述代码中,第一个函数是为了完成指定公众号的搜索后,返回结果页的代码。第二个函数是对搜索结果前十页进行遍历,找出和我们搜索名字一直的公众号内容。由于搜出来的结果非常乱,没有排序,我们利用时间戳将最近一天的内容输出。第三个函数则是用docx库将输出的内容保存到我们的word文档中。

今天的内容就到这,代码很乱大伙自己看哦。不懂得方法进行资料查阅。最近小焦也在完成一个小小的爬虫项目。等完成之后再进行分享。更多内容关注我的公众号哦。合作请私聊。

喜欢 (1)or分享 (0)

python 爬虫保存为word_微信公众号文章爬虫,本地word文档保存相关推荐

  1. python爬虫能爬取微信密码吗_爬虫如何爬取微信公众号文章

    下篇文章:python爬虫如何爬取微信公众号文章(二) 下下篇连接python爬虫如何实现每天爬取微信公众号的推送文章 因为最近在法院实习,需要一些公众号的数据,然后做成网页展示出来便于查看,之前我倒 ...

  2. 微信公众平台接口调试工具json格式不对怎么搞_一步步教你打造微信公众号文章爬虫(3)-批量下载...

    本文为本专题第3篇,如果你基础不错的话只看这一篇的讲解及源代码应该就能轻松实现批量下载所有文章了,基础稍差的可以先看一下前两篇,只要你有点基础,有点耐心,八成朋友都至少能照葫芦画瓢实现批量下载文章的功 ...

  3. python wechatsougou_python抓取搜狗微信公众号文章

    初学python,抓取搜狗微信公众号文章存入mysql mysql表: 代码: import requests import json import re import pymysql # 创建连接 ...

  4. python 公众号爬虫_微信公众号文章爬虫

    很多的微信公众号都提供了质量比较高的文章阅读,对于自己喜欢的微信公众号,所以想做个微信公众号爬虫,爬取相关公众号的所有文章.抓取公众号的所有的文章,需要获取两个比较重要的参数.一个是微信公众号的唯一I ...

  5. 【Python爬虫】爬取微信公众号文章信息准备工作

    有一天发现我关注了好多微信公众号,那时就想有没有什么办法能够将微信公众号的文章弄下来,而且还想将一些文章的精彩评论一起搞下来.参考了一些文章,通过几天的研究基本上实现了自己的要求,现在记录一下自己的一 ...

  6. PHP微信公众号文章爬虫

    整理了一下前段时间写的php微信公众号文章的爬虫,解决了微信的防=防盗链机制,这里对图片进行了统一管理.代码使用tp3框架写的,可以根据实情换成tp5或者laravel框架的代码. 爬虫的参数可自行修 ...

  7. python下载微信公众号文章_一步步教你打造微信公众号文章爬虫(3)-批量下载

    本文为本专题第3篇,如果你基础不错的话只看这一篇的讲解及源代码应该就能轻松实现批量下载所有文章了,基础稍差的可以先看一下前两篇,只要你有点基础,有点耐心,八成朋友都至少能照葫芦画瓢实现批量下载文章的功 ...

  8. python利用fiddler抓取微信公众号文章及标题(简单易懂)

    1安装好fiddler配置好安全证书,这一步很简单就是安装,自己问度娘 2登录微信客户端(电脑),打开公众号滑动,查看响应信息,主要要过滤一下,排除干扰 mp.weixin.qq.com; 3可以点开 ...

  9. Python爬取“Python小屋”公众号所有文章生成独立Word文档

    封面图片:<Python程序设计实验指导书>(ISBN:9787302525790),董付国,清华大学出版社 图书详情:https://item.jd.com/12592638.html ...

  10. python爬取公众号阅读量_分享一个牛逼的Python项目:公众号文章爬虫

    我订阅了近 100 个公众号,有时候想再找之前读过的文章,发现搜索起来特别困难,如果忘了收藏,估计得找半小时,更让人无语的是,文章已经发布者删除,或者文章因违规被删除.那么有没有这样的爬虫,可以将公众 ...

最新文章

  1. CentOS7安装Nagios并配置出图详解
  2. onInterceptTouchEvent和onTouchEvent调用时序
  3. 中有atoi函数吗_C++ 多态的实现及原理,深挖vptr指针,手动调用虚函数
  4. python调用cmd命令释放端口_Python——cmd调用(os.system阻塞处理)(多条命令执行)...
  5. 使用ADO.net将数据导出到Excel并提供下载
  6. UA PHYS515A 电磁理论IV 时变电磁场理论4 电磁场的动量与麦克斯韦压缩能张量
  7. 【数据结构】四、双向链表和双向循环链表
  8. scree 中的几个内置对象
  9. 网页学习教程视频百度云下载,程序学习教程视频百度云下载(讲解非常的细,适合刚学习程序人员,从前端到后端都有,全看完你就是一名程序猿)
  10. UIAutomatorViewer初体验
  11. [转] 宝宝出生第一年妈妈最应关心的问题
  12. 学习计算机编程的基础
  13. 日语自我介绍 自己紹介・自己PR
  14. 让 ChatGPT 如虎添翼 2.0
  15. 网游运营基本概念及专业术语
  16. pg数据库 设置不区分大小写_浅谈PostgreSQL中大小写不敏感问题
  17. mysql按笔划排序_mysql中怎么按姓氏笔画排序
  18. 欺骗的艺术 --- 第一章
  19. IdentityServer4 获取Token及刷新Token
  20. c调用python第三方包_cbillington_Python包维护者_第三方库作者_PyPI项目模块Package - Python中文网...

热门文章

  1. c# asp.net在线问卷调查系统源码【源码分享】
  2. 【Baby Maniacs】mmd动作+镜头下载
  3. 【逗老师的小技巧】群晖使用DELL H330(LSI 3008)RAID卡刷IT直通模式
  4. 使用css美化checkbox
  5. ubuntu下安装flash插件解决视频播放功能
  6. java ftps_如何基于FTP4J实现FTPS连接过程解析
  7. 解决websocket链接失败防火墙规则问题
  8. python如何使用sdk_如何通过Python访问Kvaser CANlib 软件开发包|Kvaser CANlib SDK的应用...
  9. DHCP与DHCP中继--原理与配置--华为实验--配置接口模式、全局模式以及中继模式
  10. java通用教务管理系统_基于java的教务管理系统.doc