脚本宝典收集整理的这篇文章主要介绍了网络爬虫练习,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
朝服务器发请求 页面数据直接全部返回并加载(如何验证数据是直接加载还是其他方式 浏览器空白处鼠标右键 点击查看网页源码 在源码界面搜索对应的数据 如果能收到就表示该数据是直接加载的(你可以直接发送相应请求获取)
先加载一个页面的框架 之后再朝各项数据的网址发送请求获取数据(如何查找关键性的数据来源 需要借助于浏览器的network监测核对内部请求 请求的数据一般都是json格式)
如果是get请求那么可以直接拷贝网址在浏览器地址栏访问
https://www.bejson.COM/
import requests import pandas res = requests.get( 'http://tianqi.2345.com/Pc/GetHistory?areainfo%5BareaId%5D=60010&areaInfo%5BareaTyPE%5D=2&date%5Byear%5D=2021&date%5Bmonth%5D=6') # PRint(res.json()) # 反序列化成字典之后 比对一下数据在哪个键值对中 real_data_htML = res.json().get('data')
后期再学 目前先了解
sug请求频率固定且较高
并且请求体携带了改单词数据
import requests keyword = input('请输入你需要查询的单词>>>:') res = requests.post('https://fanyi.baidu.com/sug', data={'kw': keyword} ) data_dict = res.json() data_list = data_dict.get('data') for d in data_list: print(d)
需求:爬取药品企业生产许可证详细信息
http://scxk.nmpa.gov.cn:81/xk/ITownet/portal/dzpz.jsp?id=911d4f256300476abb78012427d38c9d
id: 911d4f256300476abb78012427d38c9d
循环获取格式简介id 然后发送post请求 获取每个公司的详细数据
import requests res = requests.post('http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsList', data={ "on": "true", "page": 1, "pageSize": 15, "productName":'', "conditionType": 1, "applyname":'', "applysn": '' } ) # data_dict = res.json() # data_list = data_dict.get('list') # 上述两步合成一步 data_list = res.json().get('list')
数据详情页地址:http://scxk.nmpa.gov.cn:81/xk/itownet/portal/dzpz.jsp?id=911d4f256300476abb78012427d38c9d核心数据请求地址:http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsById核心数据请求体参数:id:911d4f256300476abb78012427d38c9d
# 循环获取格式id值 for d in data_list: # 字段取值 获取id值 ID = d.get("ID") # 发送网络请求 res1 = requests.post('http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsById', data={'id':ID} ) # 获取数据结果 data_dict = res1.json()
(结合实际需求 保存相应的数据 文件操作 数据库)
1.多页数据如何获取(思路非常重要)
1.先点击页码查看url的变化
如果数据变化url不变 那么数据肯定是动态加载的
如果数据变化url也变 那么数据可能是直接加载也可能是动态
2.针对上述案例 数据是动态加载 所以需要研究每一次点击页码内部请求
3.研究请求体参数得知数据页由page控制
4.写一个for循环即可
2.数据存储如何实现
以上是脚本宝典为你收集整理的网络爬虫练习全部内容,希望文章能够帮你解决网络爬虫练习所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。