python 爬取微信文章(搜狗为入口)

本人想搞个采集微信文章的网站,无奈实在从微信本生无法找到入口链接,网上翻看了大量的资料,发现大家的做法总体来说大同小异,都是以搜狗为入口。下文是笔者整理的一份python爬取微信文章的代码,有兴趣的欢迎阅读,本人小站:www.quzhuanpan.com喜欢的话可以去首页加官方微信或者qq。
#coding:utf-8
author = 'haoning'
**#!/usr/bin/env python
import time
import datetime
import requests**
import json
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )
import re
import xml.etree.ElementTree as ET
import os
#OPENID = 'oIWsFtyel13ZMva1qltQ3pfejlwU'
OPENID = 'oIWsFtw_-W2DaHwRz1oGWzL-wF9M&ext'
XML_LIST = []
# get current time in milliseconds
current_milli_time = lambda: int(round(time.time() * 1000))
def get_json(pageIndex):

global OPENID
the_headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36',
'Referer': 'http://weixin.sogou.com/gzh?openid={0}'.format(OPENID),
'Host': 'weixin.sogou.com'
}

url = 'http://weixin.sogou.com/gzhjs?cb=sogou.weixin.gzhcb&openid={0}&page={1}&t={2}'.format(OPENID, pageIndex, current_milli_time()) #url
print(url)

response = requests.get(url, headers = the_headers)
# TO-DO; check if match the reg
response_text = response.text
print response_text
json_start = response_text.index('sogou.weixin.gzhcb(') + 19
json_end = response_text.index(')') - 2
json_str = response_text[json_start : json_end] #get json
#print(json_str)
# convert json_str to json object
json_obj = json.loads(json_str) #get json obj
# print json_obj['totalPages']
return json_obj

def add_xml(jsonObj):

global XML_LIST
xmls = jsonObj['items'] #get item
#print type(xmls)
XML_LIST.extend(xmls) #用新列表扩展原来的列表
**[#www.oksousou.com][2]**

# ------------ Main ----------------
print 'play it :) '
# get total pages
default_json_obj = get_json(1)
total_pages = 0
total_items = 0
if(default_json_obj):

# add the default xmls
add_xml(default_json_obj)
# get the rest items
total_pages = default_json_obj['totalPages']
total_items = default_json_obj['totalItems']
print total_pages
# iterate all pages
if(total_pages >= 2):
    for pageIndex in range(2, total_pages + 1):
        add_xml(get_json(pageIndex)) #extend
        print 'load page ' + str(pageIndex)
        print len(XML_LIST)
要用Python爬取微信公众号的数据,可以使用第三方库itchat和Selenium。 首先,安装itchat库:在命令行中输入"pip install itchat",等待安装完成。 然后,使用itchat库登录微信账号:在Python代码中导入itchat库,通过调用itchat.login()函数登录微信账号。按照提示扫描登录二维码即可。 登录完成后,可以通过itchat.get_mps()函数获取微信公众号列表。可以通过遍历该列表,找到目标公众号的username。 接下来,可以通过itchat.search_mps()函数搜索公众号,传入公众号的名称,返回一个字典,包含公众号的详细信息。从中获取公众号的username。 得到目标公众号的username后,使用itchat.send()函数可以向公众号发送消息,例如发送一个指令来获取公众号的文章列表。 然而,由于微信公众号的网页是动态加载的,无法通过itchat直接爬取。这时候可以使用Selenium库来模拟浏览器行为。 首先要安装Selenium库,输入"pip install selenium"进行安装。 然后,在代码中导入selenium库,并启动一个真实的浏览器,例如Chrome。 接下来,使用浏览器打开微信公众号的网页,需要手动登录微信账号。 登录完成后,可以进行一系列操作,例如点击搜索框输入公众号名称,点击搜索按钮进行搜索,点击公众号进入详情页,然后找到文章列表,使用Selenium库提供的方法获取列表的HTML或文本信息。 得到文章列表后,可以使用正则表达式或其他方法进行解析和提取,获取目标数据。 最后,可以保存数据到本地文件,或进行其他后续处理。 总结来说,Python爬取微信公众号的数据,可以使用itchat库登录微信账号,获取公众号username;然后使用Selenium库模拟浏览器行为,获取公众号的文章列表;最后解析数据并保存。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值