Python数据分析一条龙(菜鸟上手项目记录--爬虫阶段)

Python数据分析小项目

项目结构

需求分析

用网络爬虫去无讼网站爬取电信网络诈骗一审案例。爬取内容:

  • 案例编号

  • 案例详情URL

  • 案例名称(Title)

  • 被告人基本信息:姓名、出生日期、籍贯

  • 法院判决结果:罚款数、判决年限

  • 法院所在地区

建立一个回归模型,分析判决年限受什么因素的影响

项目阶段分析

在本次项目中,需要完成从数据源到回归分析的一系列过程,将步骤划分为如下阶段:

  • 编写爬虫程序,从无讼案例网抓取相关数据
  • 编写数据清洗程序,将抓取下来的原始数据进行清洗
  • 编写数据处理程序,将原始数据转换为数字的形式
  • 编写回归分析程序,通过sklearn模块完成回归模型的构建

1. 爬虫阶段

分析

访问https://www.itslaw.com/home,输入电信网络诈骗。访问结果如下:
在这里插入图片描述

通过F12抓包,发现服务器向当前浏览器通过Ajax返回了一段Json数据,其中包含当前页面的所有信息 在这里插入图片描述

查看路径为https://www.itslaw.com/api/judgements?_timer=1592998113495&sortType=1&conditions=searchWord%2B%E7%94%B5%E4%BF%A1%E7%BD%91%E7%BB%9C%E8%AF%88%E9%AA%97%2B1%2B%E7%94%B5%E4%BF%A1%E7%BD%91%E7%BB%9C%E8%AF%88%E9%AA%97&startIndex=0&countPerPage=20

尝试改变该url能否获取不同的信息:

https://www.itslaw.com/api/judgements?_timer=1592998113495&sortType=1&conditions=searchWord%2B电信网络诈骗%2B1%2B电信网络诈骗&startIndex=2&countPerPage=20

在这里插入图片描述

发现通过改变startIndex的值可以指定当前浏览的页数,即完成加载更多的功能

解析该json字符串发现了一些有用的信息: 在这里插入图片描述
按照多次爬虫的经验,猜想这个id应该是访问该案件详情信息url的某个部分。所以接下来验证猜想。

进入详情页面来获取详细的信息。在这里插入图片描述
通过F12抓包,发现服务器向当前浏览器通过Ajax返回了一段Json数据 在这里插入图片描述

该json的url为https://www.itslaw.com/api/judgements/detail?_timer=1592997701254&judgementId=c946665c-3d05-4044-ad64-a88b7044fc2c

重新抓取一个新的案例的详情页面请求 在这里插入图片描述

该json的url为https://www.itslaw.com/api/judgements/detail?_timer=1592997816911&judgementId=1e68789b-101d-458e-8116-73029c82c93f

发现该路径是由judgementId来区分的,再通过访问案例首页可以获取到的这个judgementId,所以可以总结我们的爬虫思路如下:

  1. 通过访问搜索结果页面,获取每个案例对应的judgementId
  2. 通过拼接url,完成对每个案例的详情页面爬取
  3. 通过改变startIndex来切换搜索结果页面。完成对多个页面多个案例的爬取

代码实现

import requests
from lxml import etree
import time
import re
import csv
import threading

HEADERS = {
   
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36',
    'referer': 'https://www.itslaw.com/search?initialization=%7B%22category%22%3A%22CASE%22%2C%22filterList%22%3A%5B%7B%22type%22%3A%22searchWord%22%2C%22id%22%3A%22%E7%94%B5%E4%BF%A1%E7%BD%91%E7%BB%9C%E8%AF%88%E9%AA%97%22%2C%22searchType%22%3A1%2C%22label%22%3A%22%E7%94%B5%E4%BF%A1%E7%BD%91%E7%BB%9C%E8%AF%88%E9%AA%97%22%2C%22category%22%3A%22%E6%90%9C%E7%B4%A2%E8%AF%8D%22%7D%5D%7D',
    'cookie': 'home_sessionId=true; UM_distinctid=172ac09f5d0615-06776b04780
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值