一.安装环境
1.下载pymongo关键包
.
在PyCharm菜单栏中,选择File,再选择Settings(如上图)
选择Project Interpreter,再点击加号(如上图)
(如上图)静待安装,出现如下图信息即安装成功
此时你就会在外面看到你安装的包,如下图
此时引入pymongo包就不会报错了
2.下载安装mongodb
这里就不详细介绍了,网上教程甚多
二.如题
1.首先引入包
import requests, re, json, pymongo
from multiprocessing import Pool
from urllib.parse import urlencode
from hashlib import md5
(1).requests,re,json包是python爬虫的基本包的,pymongo就是刚刚装的mongodb包
(2).第二行是实现多进程的进程池包
(3).第三行是实现将字典直接拼接进url中
(4).第四行实现简单加密
2.封装爬虫类
class JiePaiSpider(object):
(1).连接mongodb数据库
client = pymongo.MongoClient('localhost')
db = client['jiepai']
db = client[‘xxx’]xxx为你创建的mongodb数据库的名称
(2).构造函数
def __init__(self):
self.headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}
1.在此函数中放入我们的请求头,用以模仿浏览器访问网站
2.需要注意的是,不能将mongodb数据库的连接请求放在此函数中,否则会报TypeError: can’t pickle _thread.lock objectsde 错,因为进程池不能序列化含有进程锁的对象,而pymango数据库中含有线程锁,所以进程池无法序列化pymango对象
(3)请求列表页的json接口,获取列表页的图片信息
def get_list_json(self, offset):
"""
请求列表页的json接口,获取列表页中的图片信息。
:param offset: 请求接口时的偏移量参数。(0,20,40......)
:return:
"""
# https://www.toutiao.com/search_content/?offset=0&format=json&keyword=%E8%A1%97%E6%8B%8D&autoload=true&count=20&cur_tab=1&from=search_tab&pd=synthesis
# 准备接口参数
params = {
'offset': offset,
'format