今天跟着这篇博客抓取微信公众号文章练习了一下爬虫,运行成功。想和大家分享一下过程中出现的问题和解决方法。
运行环境 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
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'时间', u'文章标题&