• 爬虫学习的基础篇


    1.我们爬虫一般使用的模块为urllib和requests模块,现在requests基本代替了urllib
    2.爬虫的基本步骤
    第一步:获取指定的url(要爬取的数据发起的请求url)
    第二步:发起请求(根据请求方式(POST,GET)发起请求)response = requsts.get(url)
    第三步:获取请求的数据(响应的数据字符串化response.text,二进制response.content,json数据为response.json),并且分析数据
    第四步:持久化存储
    3.异常的访问:
    1.正常的访问请求:我们通过真实的浏览器去访问的请求
    2.异常的访问请求:非浏览器发送的请求(我们的爬虫就是通过模拟浏览器发送的请求)
    3.判别方式:请求头中的User-Agent判别
    4,后台根据UA判别是不是爬虫,所有我们可以将爬虫对应的请求载体身份标识伪装/篡改成浏览器的身份标识
    eg:headers = {
    'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"
    }
    requests.get(url = url, headers = headers)
    4.get与post参数的差别
    get:url headers params
    post:url headers data(json)

    5.动态数据的抓取
    什么是动态数据:就是我们不是通过浏览器的地址栏url请求到的数据,比如ajax数据
    怎么判别要抓取的数据是不是动态加载的数据:现在network里面查找到页面的url所对应的包,在这个包的response里面查找看我们要请求的数据
    (或者在Priview里面直接看有没有数据,或者直接看加载这类数据是页面有没有刷新)
    1.当我们爬取网页数据的时候,先看看是不是动态加载的数据(是的话就全局搜索到动态数据发起请求的数据包),然后通过相应数据包进行爬取数据


    举例说明:我们这次爬取肯德基餐饮的数据查询 url:www.kfc.com.cn/kfccda/storelist/index.aspx
    import requests
    import json
    url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword' # 找到动态数据所在的数据包获取参数与url
    headers = {
    'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"
    }
    data = {'cname':'' ,
    'pid':'',
    'keyword':'岳阳',
    'pageIndex': '1',
    'pageSize': '10'}
    response = requests.post(url=url, headers = headers, data=data)
    response_text = response.json()
    for dic in response_text['Table1']:
    pos = dic['addressDetail']
    print(pos)
  • 相关阅读:
    POJ 2260
    安防监控 —— 数据上行刷新与命令下发过程
    安防监控 —— 主框架搭建
    安防监控 —— 软硬件环境分析与通信协议制定
    安防监控项目 —— 需求分析
    安防监控项目 —— 环境搭建
    Linux下I2C总线驱动框架
    IIC总线硬件工作原理(待完善)
    linux驱动面试(转)
    驱动开发 —— 输入子系统(工作逻辑分析)
  • 原文地址:https://www.cnblogs.com/KingOfCattle/p/12930047.html
Copyright © 2020-2023  润新知