资源简介
通过搜狗搜索中的微信搜索入口来爬取微信公众号上的文章 时间,文章标题,文章地址,文章简介、图片
代码片段和文件信息
#!/usr/bin/python
# coding: utf-8
‘‘‘
总的来说就是通过搜狗搜索中的微信搜索入口来爬取
2017-04-13 by Jimy_fengqi
‘‘‘
import urllib
import xlwt as xlwt
from urllib import parse
from pyquery import PyQuery as pq
from selenium import webdriver
import requests
import time
import re
import os
def dirsIsExists(path):
if os.path.exists(path):
message = ‘OK the “%s“ file exists.‘
else:
message = ‘Sorry I cannot find the “%s“ file.‘
os.makedirs(path)
print(message)
#爬虫主函数
def saveImgTwo(pathnameList):
dirsIsExists(path)
Length = len(nameList)
x = 0
for i in range(0 Length):
imgurl = nameList[i][“pic“]
print(“图片%d:%s\n“%(i+1 imgurl))
if ‘http‘ in imgurl:
print (“第 %s“ %x + “张图片“)
urllib.request.urlretrieve(imgurl path+‘/‘+‘/%s.jpg‘ % x)
x += 1
#判断目录是否存在不存在就生成
class weixin_spider:
def __init__(self keywords):
‘ 构造函数 ‘
self.keywords = keywords
# 搜狐微信搜索链接入口
#self.sogou_search_url = ‘http://weixin.sogou.com/weixin?type=1&query=%s&ie=utf8&_sug_=n&_sug_type_=‘ % quote(self.keywords)
self.sogou_search_url = ‘http://weixin.sogou.com/weixin?type=1&query=%s&ie=utf8&s_from=input&_sug_=n&_sug_type_=‘ % parse.quote(self.keywords)
# 爬虫伪装头部设置
self.headers = {‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 6.3; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0‘}
# 设置操作超时时长
self.timeout = 5
# 爬虫模拟在一个request.session中完成
self.s = requests.Session()
#excel 第一行数据
self.excel_data=[u‘编号‘u‘时间‘u‘文章标题‘u‘文章地址‘u‘文章简介‘]
#定义excel操作句柄
self.excle_w=xlwt.Workbook()
#搜索入口地址,以公众为关键字搜索该公众号
def get_search_result_by_keywords(self):
self.log(u‘搜索地址为:%s‘ % self.sogou_search_url)
return self.s.get(self.sogou_search_url headers=self.headers timeout=self.timeout).content
#获得公众号主页地址
def get_wx_url_by_sougou_search_html(self sougou_search_html):
doc = pq(sougou_search_html)
#print doc(‘p[class=“tit“]‘)(‘a‘).attr(‘href‘)
#print doc(‘div[class=img-box]‘)(‘a‘).attr(‘href‘)
#通过pyquery的方式处理网页内容,类似用beautifulsoup,但是pyquery和jQuery的方法类似,找到公众号主页地址
return doc(‘div[class=txt-box]‘)(‘p[class=tit]‘)(‘a‘).attr(‘href‘)
#使用webdriver 加载公众号主页内容,主要是js渲染的部分
def get_selenium_js_html(self url):
browser = webdriver.PhantomJS(executable_path=r‘D:\mytoolssoft\idea_Tool\phantomjs-2.1.1-windows\bin\phantomjs.exe‘)
browser.get(url)
time.sleep(3)
# 执行js得到整个页面内容
html = browser.execute_script(“return document.documentElement.outerHTML“)
browser.close()
return html
#获取公众号文章内容
def parse_wx_articles_by_html(self selenium_html):
doc = pq(selenium_html)
print (u‘开始查找内容msg‘)
return doc(‘div[class=“weui_media_box appmsg“]‘)
#有的公众号仅仅有
相关资源
- Python_验证采样定理.py
- Python网络爬虫实战Scrapy.txt
- micropython下的ds18b20代码
- knn 字符识别 python
- EM算法Python实现
- 简单的python购物车程序
- 是AI就躲个飞机-纯Python实现人工智能
- Python接口测试框架实战与自动化进阶
- 基本蚁群算法python实现
- python核心编程第二版习题答案
- 基于二维伽马函数的光照不均匀的图
- python主题爬取百度新闻
- MySQL-python-1.2.5.win-amd64-py2.7
- nao机器人单个关节运动程序
- Python - Flask 使用Ajax 实现多文件上传
- Python魔鬼训练营系列教程
- 多线程爬虫
- python简单实现-中国象棋
- Python爬虫--抓取百度百科的前1000个页
- nlp肯定句与否定句判断
- 绘制社交网络图的幂律分布python代码
- Python 飞机大战 游戏设计需求 与 实现
- PARZEN窗和K近邻算法的python实现
- windows下fcntl.py
- Python项目案例开发从入门到实战源代
- Python项目案例开发从入门到实战源代
- python写的专家系统玩具分类
- 基于决策树的天气大数据回归例程
- python实现图像的混沌加密解密
- think python 中文版.pdf
评论
共有 条评论