从搜狗网站爬取微信公众号文章
转自:http://blog.csdn.net/mr_guo_lei/article/details/78570744
1.模拟浏览器登陆,获取cookies
2.request.get()带上cookies访问
3.反反爬虫(目前是代理ip+休眠,搜狗模式:封ip+封cookie+重点关照)
(根据实际情况,选择代理ip和休眠时间)
from selenium import webdriver
import requests
import time
from bs4 import BeautifulSoup
import re
from mysql_py import *
import threading
from urllib import request
from get_ip_pools import *
import random #get cookie
def get_cookies(): driver = webdriver.Chrome() driver.get("http://weixin.sogou.com/") driver.find_element_by_xpath('//*[@id="loginBtn"]').click() time.sleep(10) cookies = driver.get_cookies() cookie = {} for items in cookies: cookie[items.get('name')] = items.get('value') return cookie #url = "http://weixin.sougou.com"
#response = requests.get(url,cookies = cookie)
#search = input("输入你想搜索的关键词") #get total url
def get_total_url(url): if url.startswith("//"): url = "http:" + url elif url.startswith("/"): url = "http:/" + url else: url = url return url #init header
header = { 'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8', 'Accept-Encoding':'gzip, deflate', 'Accept-Language':'zh-CN,zh;q=0.9', 'Connection':'keep-alive', 'Host':'weixin.sogou.com', 'Upgrade-Insecure-Requests':'1', 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36', } #init proxys
alright_proxys = main_function() #get total page num
def get_page_count(search,cookie): global header page_source = requests.get("http://weixin.sogou.com/weixin?query=%s&type=2&page=1"%search,cookies = cookie,headers = header,proxies = alright_proxys[random.randint(0,len(alright_proxys)-1)]).content bs_obj = BeautifulSoup(str(page_source,encoding = "utf-8"),"html.parser") #print(bs_obj) item_count_str = bs_obj.find("div",{"class":"mun"}).text pattern = re.compile(r'\d+') total_item_count = pattern.findall(item_count_str.replace(",",""))[0] page_count = int(int(total_item_count)/10) return page_count #check path
def check_mkdir(path): if not os.path.exists(path): try: os.makedirs(path) except Exception: pass #download img
def get_img(url,num,connect,cursor): global alright_proxys response = request.get(url,headers = header).content content = str(response,encoding = "utf-8") bs_obj = BeautifulSoup(content,"html.parser") img_list = bs_obj.findAll("img") count = 0 for img in img_list: try: imgurl=get_total_url(img.attrs["data-src"]) store_name = "%s"%url_num+"%s"%count path = r"C:\Users\Mr.Guo\Pictures\weixin" check_mkdir(path) #urllib.request.urlretrieve(imgurl,r"C:\Users\Mr.Guo\Pictures\weixin\%s.jpeg" %store_name) insert_into_table(connect,cursor,store_name,html) count += 1 time.sleep(5) except Exception as e: pass #main function
def main_fun(page_count,search,cookie,connect,cursor): global header for i in range(page_count): num = i page_source = requests.get("http://weixin.sogou.com/weixin?query=%s&type=2&page=%s"%(search,num + 1),cookies = cookie,headers = header,proxies = alright_proxys[random.randint(0,len(alright_proxys)-1)]).content bs_obj = BeautifulSoup(str(page_source,encoding = "utf-8"),"html.parser") url_list = bs_obj.findAll("div",{"class":"txt-box"}) final_url_list = [] for url in url_list: final_url_list.append(url.h3.a.attrs['href']) for url_num in range(len(final_url_list)): t = threading.Thread(target = get_img,args = (final_url_list[url_num],url_num,connect,cursor)) #time.sleep(3) t.start()
从搜狗网站爬取微信公众号文章相关推荐
- Python爬虫 selenium自动化 利用搜狗搜索爬取微信公众号文章信息
少年最好的地方就是:虽然嘴上说要放弃,心底却总会憋着一口气.--刘同 文章目录 一.需求和网页分析 二.selenium爬虫 一.需求和网页分析 URL:https://weixin.sogou.co ...
- 记一次企业级爬虫系统升级改造(四):爬取微信公众号文章(通过搜狗与新榜等第三方平台)
首先表示抱歉,年底大家都懂的,又涉及SupportYun系统V1.0上线.故而第四篇文章来的有点晚了些~~~对关注的朋友说声sorry! SupportYun系统当前一览: 首先说一下,文章的进度一直 ...
- 记一次企业级爬虫系统升级改造(四):爬取微信公众号文章(通过搜狗与新榜等第三方平台)...
首先表示抱歉,年底大家都懂的,又涉及SupportYun系统V1.0上线.故而第四篇文章来的有点晚了些~~~对关注的朋友说声sorry! SupportYun系统当前一览: 首先说一下,文章的进度一直 ...
- 使用代理爬去微信公众号_Python3网络爬虫开发实战之使用代理爬取微信公众号文章...
本节目标 我们的主要目标是利用代理爬取微信公众号的文章,提取正文.发表日期.公众号等内容,爬取来源是搜狗微信,其链接为 http://weixin.sogou.com/,然后把爬取结果保存到 MySQ ...
- 使用代理爬去微信公众号_Python3WebSpider/9.5-使用代理爬取微信公众号文章.md at master · Lainton/Python3WebSpider · GitHub...
9.5 使用代理爬取微信公众号文章 前面讲解了代理池的维护和付费代理的相关使用方法,接下来我们进行一下实战演练,利用代理来爬取微信公众号的文章. 1. 本节目标 我们的主要目标是利用代理爬取微信公众号 ...
- python爬虫能爬取微信密码吗_爬虫如何爬取微信公众号文章
下篇文章:python爬虫如何爬取微信公众号文章(二) 下下篇连接python爬虫如何实现每天爬取微信公众号的推送文章 因为最近在法院实习,需要一些公众号的数据,然后做成网页展示出来便于查看,之前我倒 ...
- python 爬取微信公众号文章(selenium+webdriver)
"""通过搜狗搜索中的微信搜索入口爬取微信公众号文章(selenium) """ import re import os import js ...
- python爬取正确但不出文件_使用Python爬取微信公众号文章并保存为PDF文件(解决图片不显示的问题)...
前言 第一次写博客,主要内容是爬取微信公众号的文章,将文章以PDF格式保存在本地. 爬取微信公众号文章(使用wechatsogou) 1.安装 pip install wechatsogou --up ...
- python爬取微信公众号文章(包含文章内容和图片)
之前虽然做过网页爬取,但微信爬取一直没做过,因为我一直不知道网页可以进微信公众平台,只用过微信客户端进微信公众号.既然可以通过网页进微信公众平台,那么爬取微信公众号文章就流程上就没太多难度了. 自己在 ...
最新文章
- 2021年大数据Flink(三十二):​​​​​​​Table与SQL案例准备 API
- Python中类的定义与使用
- python监控程序编写_05-python进阶-简单监控程序开发
- 安装CM 6.3.1和CDH 6.3.2
- HTTPS中SSL协议总结
- 后端:SpringBoot集成Swagger-Bootstrap-UI,界面美观!
- MFC小笔记:滑动条与编辑框
- 解决办法:fatal error: SDL.h: 没有那个文件或目录
- 用友漏洞php,用友NC任意文件上传漏洞复现
- 推荐一个管理微信好友及微信群的微信机器人管理软件
- 计算机网络数据通信基础题,数据通信基础练习题(含答案)
- 谢尔宾斯基三角形——python递归
- mysql数据库没有导出权限_mysql导出没有数据库
- Java惯性数据库_来自ThreeJS的OrbitControl中的惯性
- 龙ol服务器维护补偿boss,龙OL低级稀有BOSS刷新点
- 小学计算机设备报表,小学信息技术教育及电教设备自查报告
- 计算机硬盘怎么看坏了,SSD固态硬盘坏掉怎么看?有哪几种征兆?
- vue登录页面实现记住密码的操作
- 3.17从键盘输入两个正整数 a 和 b,求其最大公约数和最小公倍数。
- Glide框架高斯模糊图片处理
热门文章
- 巴菲特弃用 20 美元的三星翻盖,换上了 iPhone
- Already included file name .......
- 高等工程数学 —— 第一章 (2)矩阵的谱半径与条件数
- 华硕Android原始密码,华硕(ASUS)路由器默认密码是多少?
- 关于测试网 gladios 节点公开部署
- 计算机系统的构成课程导入,第四课:计算机互联网络
- 【毅力挑战】PCIe 每日一问一答(2022.12 已归档)
- C语言 #include指令
- Android Studio App开发之下载管理器DownloadManager中显示、轮询下载进度、利用POST上传文件讲解及实战(附源码)
- Vue标准后台界面及登录功能流程(2)