p[]ython 爬虫] 多进程爬取动态加载数据的一种思路

本文介绍了如何使用Python爬虫处理动态加载的网页。通过Fiddler抓包工具分析数据接口,理解参数规律,拼接请求接口并遍历获取JSON数据。当Fiddler无法抓取请求时,可通过卸载重装解决。
摘要由CSDN通过智能技术生成

1.对于爬取静态网页:
思路就是直接拼接每个页面的url,得到一个超大的url 的list,然后一个一个的request.get(url),然后xpath解析内容,存入mongo或者用logger.info(json.dumps(data)) 存为csv文件

  1. 对于动态加载的网页,一个思路就是用抓包工具分析其数据接口:我是用的fiddler,利用fiddler查看打开网页时数据加载的接口,一般是 {JSON} 格式,找到接口的地址,分析其接口中参数的规律,然后又是老操作(拼接出所有页面的数据的请求接口,然后再一个一个的遍历请求接口,得到json格式的数据),这个其实对于数据清洗来说很方便,不用做什么格式解析.
    3.Fiddler 突然不能抓取请求了怎么办
    3.1 Fiddler 打开后,浏览器不能打开网页,我的办法是卸载Fiddler ,重装,简单粗暴(因为Fiddler 只有6m大小,方便快捷)
    迅雷下载: https://dl.softmgr.qq.com/original/Development/FiddlerSetup_5.0.20202.18177.exe
    4.源代码:
import json
import multiprocessing
import os
import random
import time

import requests
from pprint import pprint

from fake_useragent import UserAgent
from loguru import logger
from motor.motor_asyncio import AsyncIOMotorClient
# from redis import Redis
from redis import Redis


class ETh():
    def redis_connect(self):
        # myredis=Redis(db=6)
        myredis=Redis(db=6)
        return myredis

    def get_all_url(self):
        for i in range(1, 62):
            url=f"https://explorer-web.api.btc.com/v1/eth/txns/0?page={i}&size=150"
            self.redis_connect().lpush("redis_connect_urls", url)
            print(f'push 第{i}页 to redis')
        self.redis_connect().close()

    def read_page(self, url):
        #
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值