爬虫学习的基础篇

Posted kingofcattle

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫学习的基础篇相关的知识,希望对你有一定的参考价值。

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)

以上是关于爬虫学习的基础篇的主要内容,如果未能解决你的问题,请参考以下文章

透彻学习Python异步编程——模块asyncio之基础篇

爬虫学习—疫情篇

爬虫篇 | 高级爬虫:Scrapy爬虫框架的安装

Python进阶篇:Python简单爬虫

python爬虫之基础学习

学习笔记之爬虫篇