Python2.7爬虫——爬取微信公众号文章

今天跟着这篇博客抓取微信公众号文章练习了一下爬虫,运行成功。想和大家分享一下过程中出现的问题和解决方法。
运行环境 windows 7 + Pycharm2018 + Python 2.7

目录

1.安装必要的Python包

运行代码需要安装以下packages:
pyquery、requests、selenium 、pyExcelerator和json
同时需要下载 phantomjs-2.1.1-windows,将里面的 phantomjs.exe 放到 Python2.7的Script 目录下
其中有两点说明:

1.1 关于下载selenium包

使用cmd下载selenium时不能直接输入 pip install selenium ,否则运行代码时会报错,因为默认install的是最新版本,也就是3.x版本的selenium,为了解决这个问题,键入以下代码即可:

pip uninstall selenium
y
pip install selenium==2.53.6

附上selenium的官方下载地址

1.2关于下载json包

使用cmd下载json包时亦不可直接输入pip install json ,会报错显示没有找到合适的json包,这是因为在python2中存在两个json包,分别是simplejson和json-py,这里我采用了simplejson,附上相应代码

pip install simplejson

下载成功后,import json ,不会报错,说明安装成功。

2.运行之前的准备

首先附上完整代码,再进行修改说明

# coding: utf-8

'''
通过搜狗搜索中的微信搜索入口来爬取
'''

# 这三行代码是防止在python2上面编码错误的,在python3上面不要要这样设置
import sys

reload(sys)
sys.setdefaultencoding('utf-8')

from urllib import quote
from pyquery import PyQuery as pq
from selenium import webdriver
from pyExcelerator import *  # 导入excel相关包

import requests
import time
import re
import json
import os


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_=' % 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'时间', 
要用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库模拟浏览器行为,获取公众号的文章列表;最后解析数据并保存。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值