转自: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()

从搜狗网站爬取微信公众号文章相关推荐

  1. Python爬虫 selenium自动化 利用搜狗搜索爬取微信公众号文章信息

    少年最好的地方就是:虽然嘴上说要放弃,心底却总会憋着一口气.--刘同 文章目录 一.需求和网页分析 二.selenium爬虫 一.需求和网页分析 URL:https://weixin.sogou.co ...

  2. 记一次企业级爬虫系统升级改造(四):爬取微信公众号文章(通过搜狗与新榜等第三方平台)

    首先表示抱歉,年底大家都懂的,又涉及SupportYun系统V1.0上线.故而第四篇文章来的有点晚了些~~~对关注的朋友说声sorry! SupportYun系统当前一览: 首先说一下,文章的进度一直 ...

  3. 记一次企业级爬虫系统升级改造(四):爬取微信公众号文章(通过搜狗与新榜等第三方平台)...

    首先表示抱歉,年底大家都懂的,又涉及SupportYun系统V1.0上线.故而第四篇文章来的有点晚了些~~~对关注的朋友说声sorry! SupportYun系统当前一览: 首先说一下,文章的进度一直 ...

  4. 使用代理爬去微信公众号_Python3网络爬虫开发实战之使用代理爬取微信公众号文章...

    本节目标 我们的主要目标是利用代理爬取微信公众号的文章,提取正文.发表日期.公众号等内容,爬取来源是搜狗微信,其链接为 http://weixin.sogou.com/,然后把爬取结果保存到 MySQ ...

  5. 使用代理爬去微信公众号_Python3WebSpider/9.5-使用代理爬取微信公众号文章.md at master · Lainton/Python3WebSpider · GitHub...

    9.5 使用代理爬取微信公众号文章 前面讲解了代理池的维护和付费代理的相关使用方法,接下来我们进行一下实战演练,利用代理来爬取微信公众号的文章. 1. 本节目标 我们的主要目标是利用代理爬取微信公众号 ...

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

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

  7. python 爬取微信公众号文章(selenium+webdriver)

    """通过搜狗搜索中的微信搜索入口爬取微信公众号文章(selenium) """ import re import os import js ...

  8. python爬取正确但不出文件_使用Python爬取微信公众号文章并保存为PDF文件(解决图片不显示的问题)...

    前言 第一次写博客,主要内容是爬取微信公众号的文章,将文章以PDF格式保存在本地. 爬取微信公众号文章(使用wechatsogou) 1.安装 pip install wechatsogou --up ...

  9. python爬取微信公众号文章(包含文章内容和图片)

    之前虽然做过网页爬取,但微信爬取一直没做过,因为我一直不知道网页可以进微信公众平台,只用过微信客户端进微信公众号.既然可以通过网页进微信公众平台,那么爬取微信公众号文章就流程上就没太多难度了. 自己在 ...

最新文章

  1. 2021年大数据Flink(三十二):​​​​​​​Table与SQL案例准备 API
  2. Python中类的定义与使用
  3. python监控程序编写_05-python进阶-简单监控程序开发
  4. 安装CM 6.3.1和CDH 6.3.2
  5. HTTPS中SSL协议总结
  6. 后端:SpringBoot集成Swagger-Bootstrap-UI,界面美观!
  7. MFC小笔记:滑动条与编辑框
  8. 解决办法:fatal error: SDL.h: 没有那个文件或目录
  9. 用友漏洞php,用友NC任意文件上传漏洞复现
  10. 推荐一个管理微信好友及微信群的微信机器人管理软件
  11. 计算机网络数据通信基础题,数据通信基础练习题(含答案)
  12. 谢尔宾斯基三角形——python递归
  13. mysql数据库没有导出权限_mysql导出没有数据库
  14. Java惯性数据库_来自ThreeJS的OrbitControl中的惯性
  15. 龙ol服务器维护补偿boss,龙OL低级稀有BOSS刷新点
  16. 小学计算机设备报表,小学信息技术教育及电教设备自查报告
  17. 计算机硬盘怎么看坏了,SSD固态硬盘坏掉怎么看?有哪几种征兆?
  18. vue登录页面实现记住密码的操作
  19. 3.17从键盘输入两个正整数 a 和 b,求其最大公约数和最小公倍数。
  20. Glide框架高斯模糊图片处理

热门文章

  1. 巴菲特弃用 20 美元的三星翻盖,换上了 iPhone
  2. Already included file name .......
  3. 高等工程数学 —— 第一章 (2)矩阵的谱半径与条件数
  4. 华硕Android原始密码,华硕(ASUS)路由器默认密码是多少?
  5. 关于测试网 gladios 节点公开部署
  6. 计算机系统的构成课程导入,第四课:计算机互联网络
  7. 【毅力挑战】PCIe 每日一问一答(2022.12 已归档)
  8. C语言 #include指令
  9. Android Studio App开发之下载管理器DownloadManager中显示、轮询下载进度、利用POST上传文件讲解及实战(附源码)
  10. Vue标准后台界面及登录功能流程(2)