分类目录归档:爬虫

汽车之家口碑字体反爬


写在前面

汽车之家的反爬可以说是教科书级别,其反爬虫策略经过多次迭代,已经从最初的静态字体反爬变成了动态字体+js混淆,动态字体的破解与猫眼大同小异,加密的字多一些而已。js混淆比较麻烦,通过requests库请求网页无法得到字体对应的编码,看到的是一堆js函数,看着头都大了,不知道汽车之家是否对每一个加密的字都写了函数,无法洞悉其中的规则,那只能选择selenium获取网页了,效率比较低,但是很实用(小声bb:时间主要花在计算新旧字体的欧式距离上了,因为有90个字,不改进算法要执行差不多8000次)

动态字体映射

参考以前的文章


破解猫眼字体反爬


这里写一下如何建立基础字体映射,首先获取

Read more

Python抓取微博评论


写在前面

一直以为微博的东西比较好搞,没想到还是有点坑。新浪把评论的模块保存在一个json字典里,真的是够了。。。前20页可以轻易爬取,21页以后需要获取前一页最后一个评论的ID以及已经展示的评论总数。

包和全局变量

#时间管理带师
import time
#网页请求
import requests
#解析网页
from bs4 import BeautifulSoup as bs

#统计已经展示的评论数量
num = 0
#请自行登录新浪获取cookie
cookie = {}
#请求头
headers = {
    'sec-fetch-dest':'empty

Read more

Scrapy框架的自定义配置


多spider

创建多个spider,需要为每个spider分配不同的管道(不要在settings.py中添加管道),首先在pipelines.py中定义不同的类,然后修改对应的py文件:

class PythonSpider(scrapy.Spider):
    name = 'csdn'
    allowed_domains = ['www.csdn.net']
    start_urls = ['https://www.csdn.net/nav/python']
    custom_settings = {
        '

Read more

爬虫中bs4的使用


bs4解析网页

以爬取某网站表情包为例

用到的包

import requests
import re,os
from bs4 import BeautifulSoup as bs

URL地址

urls = ['https://www.doutula.com/search?type=photo&more=1&keyword=%E6%80%BC%E4%BA%BA&page={}'.format(i + 1) for i in range(50)]
headers = {
    'User-Agent':'Mozilla/5.0 (

Read more

爬取猫眼TOP100


爬取猫眼电影100榜

import re,os
import requests
import time,openpyxl
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
    }

def get_html(url,headers):
    r = requests.get(url,headers = headers)

Read more