码迷,mamicode.com
首页 > 其他好文 > 详细

爬虫学习的基础篇

时间:2020-05-21 13:23:27      阅读:48      评论:0      收藏:0      [点我收藏+]

标签:参数   tail   com   view   使用   page   ons   搜索   持久化   

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)

爬虫学习的基础篇

标签:参数   tail   com   view   使用   page   ons   搜索   持久化   

原文地址:https://www.cnblogs.com/KingOfCattle/p/12930047.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!