zoukankan      html  css  js  c++  java
  • 爬虫学习的基础篇

    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)
  • 相关阅读:
    Oracle 日期总结
    JavaScript 获取文件名,后缀名
    JavaScript Array pop(),shift()函数
    JavaScript Array splice函数
    Oracle 创建表空间、临时表空间、创建用户并指定表空间、授权,删除用户及表空间
    eclipse debug调试java程序的九个技巧
    Oracle dos连接数据库基本操作
    Oracle 隐式游标 存储过程
    Oracle 修改表名
    Oracle 时间 MM-dd形式转换
  • 原文地址:https://www.cnblogs.com/KingOfCattle/p/12930047.html
Copyright © 2011-2022 走看看