1.思路

经测试,搜狗搜索提供的微信公众号的接口是理所当然爬取多了会被封ip等方式重点照顾。这只是做一个公众号及其链接的爬取,公众号的内容爬取及制定内容的爬取都是一个路子。搞懂了一个其他的就都差不多了。

2.整体实现

    具体实现的话就两个方面:1)代理的使用(获取可用ip)2)微信公众号的爬取

3.代码部分

1)获取可用的ip,然后随机选取一个ip

 def get_ip_list(self):                     #从西刺代理网站上获取一个IP列表 url = 'http://www.xicidaili.com/nn/'web_data = requests.get(url, headers=self.headers)soup = BeautifulSoup(web_data.text, 'lxml')ips = soup.find_all('tr')ip_list = []for i in range(1, len(ips)):ip_info = ips[i]tds = ip_info.find_all('td')ip_list.append(tds[1].text + ':' + tds[2].text)return ip_list
    def get_random_ip(self,ip_list):proxy_list = []for ip in ip_list:proxy_list.append('http://' + ip)proxy_ip = random.choice(proxy_list)proxies = {'http': proxy_ip}print(proxies)return proxies

2)代理的使用

httpproxy_handler = urllib.request.ProxyHandler(proxy)
proxy_handler = urllib.request.ProxyHandler(httpproxy_handler)
#httpproxy_handler是形如{'http': 'http://121.193.143.249:80/'}这样的字典类型的数据)
opener = urllib.request.build_opener(proxy_handler)
r = opener.open('http://httpbin.org/ip')
print(r.read())

代理使用模板 ↑ ↑ ↑ ↑ ↑

3)主函数

    def start(self,url,proxy,n):    #参数n是为了,当有ip地址不能使用时产生下一个ip而继续爬取当前页面try:httpproxy_handler = urllib.request.ProxyHandler(proxy)opener = urllib.request.build_opener(httpproxy_handler)     #使用代理iprequest=urllib.request.Request(url,headers=self.headers)response = opener.open(request)data=response.read()# print(data)datahref=[]                #定义变量title_all=[]                    #存放标题soup = BeautifulSoup(data, 'html.parser', from_encoding='utf-8')   #做汤links=soup.find_all('div',class_='img-box')    #主要内容提取for link in links:datahref.append(link.a['href'])# print(link.a['href'])file=open('link.text','a')          #链接写到link文档中for i in range(0,len(datahref)):link_ultimate=datahref[i]print(datahref[i])name=self.getname(link_ultimate)title_all.append(name)file.write(name+link_ultimate)n=n+1except Exception as e:print(e)return n

4)获取公众号名称:
这个地方的变种操作:可以获取公众号的描述,账号,信息等等各种东西。

    def getname(self, url):  # 获取每一个公众号的名称try:request = urllib.request.Request(url, headers=self.headers)response = urllib.request.urlopen(request)data = response.read()soup = BeautifulSoup(data, 'html.parser', from_encoding='utf-8')tag = soup.strongname = tag.contents[0].replace(" ","").replace("\n",'')         #用replace方法# print(tag.contents[0])print(name)# print(tag.contents)except Exception as e:print(e)return name

4.日常总结

这是一个闲着无聊的操作,上次也和班主任有交流过我想做一个整套东西的这个想法。
思考1:做这个东西的研究价值和经济意义在哪里?

如果以后做毕业设计的话一套用砖头堆砌起来的墙是没什么太大的意义的,必须是有其中可研究的亮点,经济价值或者为大家服务的一套系统。

思考2:写爬虫的基本路子。

1.合理分析定义所需要的变量
2.做汤
3.具体网页内容刨析,re或者美丽的汤中的find方法
4.爬取出来的内容如何保存

思考3:如何使用代理。

httpproxy_handler = urllib.request.ProxyHandler(proxy)
proxy_handler = urllib.request.ProxyHandler(httpproxy_handler)
#httpproxy_handler是形如{'http': 'http://121.193.143.249:80/'}这样的字典类型的数据)
opener = urllib.request.build_opener(proxy_handler)
r = opener.open('http://httpbin.org/ip')
print(r.read())

思考4:关于人生的一点思考。

老生常谈的一个,做事情要有决心。
不要畏惧,不会的东西就多花点时间放轻松去做
克服学习焦虑症,对未来充满希望,不要再惧怕什么
有想法多向班主任请教,不会的硬着头皮问别人

基于搜狗接口的微信公众号及其信息爬取相关推荐

  1. Python 微信公众号的文章爬取

    Python 微信公众号文章爬取 一.思路 二.接口分析 三.实现 第一步: 第二步: 1.请求获取对应公众号接口,取到我们需要的fakeid 2.请求获取微信公众号文章接口,取到我们需要的文章数据 ...

  2. python实现微信hook_GitHub - gemgin/wechathook: 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取...

    wechathook 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取 注入器 注入dll进程序中 DLL 实现hook功能,申请内存,修改call,在里 ...

  3. python实现微信hook_GitHub - redtips/wechathook: 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取...

    wechathook 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取 注入器 注入dll进程序中 DLL 实现hook功能,申请内存,修改call,在里 ...

  4. python实现微信hook_GitHub - zhouxionger/wechathook: 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取...

    wechathook 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取 注入器 注入dll进程序中 DLL 实现hook功能,申请内存,修改call,在里 ...

  5. python hook微信_GitHub - 15993248973/wechathook: 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取...

    wechathook 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取 注入器 注入dll进程序中 DLL 实现hook功能,申请内存,修改call,在里 ...

  6. hook微信 python_GitHub - zkqiang/wechathook: 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取...

    wechathook 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取 注入器 注入dll进程序中 DLL 实现hook功能,申请内存,修改call,在里 ...

  7. 使用搜狗接口对微信公众号爬虫

    搜狗搜索因为有微信公众号搜索的接口,所以通过这个接口就可以实现公众号的爬虫 需要安装几个python的库:selenium,pyquery 还使用到phantomjs.exe,这个需要我们自己去下载, ...

  8. python微信公众号爬虫_Python爬取指定微信公众号所有文章!

    篇文章使用到的技术: mitmdump + 电脑版微信 先分析打开可视化抓包工具, 勾选https代理.然后打开电脑版微信 任意点击一个公众号,再点击查看历史消息 注:想学习Python的小伙伴们 可 ...

  9. 微信公众号文章采集 爬取微信文章 采集公众号的阅读数和点赞数?

    获取微信key工具:fiddler2+phpstudy 本文介绍的是获取的是公众号key,不是万能微信key.不过思路类似. 我已经找了微信万能key的方法,不过是万万不能说的,嘿嘿 phpstudy ...

最新文章

  1. c# blockingcollections
  2. Node.js开发环境的搭建
  3. Struts+Spring+Hibernate练习(完整)(1)
  4. 厉害了我的VR!老师们用VR来教历史
  5. 《最受欢迎的女友职业排行榜Top10》
  6. linux基础学习7
  7. 该Tiled地图制作拿到项目~~这是偷懒,为了直接复制后写来
  8. c语言编译生成cpp,C语言的编译过程
  9. 贾扬清演讲实录:一个AI开发者的奇幻漂流
  10. 1109: 数根(函数专题)
  11. docker学习-docker解决了什么问题
  12. wpf和winform的那点区别
  13. LWP 轻量级线程的意义与实现
  14. Linux 最新配置***
  15. mysql 覆盖索引 简书_mysql覆盖索引与回表
  16. tab栏切换制作(原生js版本)
  17. 给定奇数、横、竖、斜、总和相等python_第四章练习
  18. edius裁剪快捷键_Edius剪辑视频的两种方法
  19. 2020认证杯第二阶段选提建议
  20. php解析其他php文件_PHP Include 文件

热门文章

  1. C#框架设计之浅谈SOA与钝化模式
  2. 抽奖动画 - lao虎机抽奖,手把手教你做一个抽奖机软件
  3. 数据重塑_Google是否会重塑电话
  4. 漫画丨什么是边缘云?
  5. mysql导出导入文本文件的几种方式总结
  6. mac(苹果电脑系统)关掉开机声音
  7. 电网负荷调度三维组态软件V2.0
  8. 2022年前端面试题总结
  9. 【人工智能】3.谓词与机器推理
  10. 企业官网中的“农家老宅”和“精品房”区别在哪?