1. 爬虫的用途
-
爬去数据用做网站展示
-
爬去数据用来为大数据或者人工智能服务
2. 什么是爬虫?
模拟浏览器发送请求,获取响应的程序
3. 爬虫的分类
3.1 通用爬虫
搜索引擎的爬虫,爬去整个互联网的数据
3.2 聚焦爬虫
针对特定网站专门写的抓取数据的程序
聚焦爬虫的流程
-
准备url列表
-
拿到一个url发起请求,获取响应
-
响应提取
扫描二维码关注公众号,回复: 5037601 查看本文章-
提取的是数据,数据保存
-
提取的是url,放入url列表
-
rootbots协议:网站规定搜索引擎可以爬去的内容范围,只是道德约束
4. 爬虫程序的响应
爬虫程序的响应 以 url对应的响应为准,不能以elements为准
5. 重要的请求头
-
Cookie: 保存用户登陆的凭证,如果要访问登陆后的页面去获取数据,必须携带Cookie
-
User-Agent: 表示请求者的身份,反爬的必要手段,每次请求都必须携带
-
Referer:页面来源处
6. get和post请求的区别
-
最直观的就是语义上的区别,get用于获取数据,post用于提交数据。
-
get参数有长度限制(受限于url长度,具体的数值取决于浏览器和服务器的限制),而post无限制
-
GET请求,请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接,而POST请求会把请求的数据放置在HTTP 请求体中。
-
更多资料,请查看post请求和get请求的区别
7. python3 字符串
-
str类型 str.endcode() -> bytes
-
bytes类型 bytes.deoce() -> str
>>> str1 = "黑马程序员" >>> type(str1) <class 'str'> >>> str1.encode("utf-8") b'\xe9\xbb\x91\xe9\xa9\xac\xe7\xa8\x8b\xe5\xba\x8f\xe5\x91\x98' >>> a = str1.encode("utf-8") >>> type(a) <class 'bytes'> >>> a.decode("utf-8") '黑马程序员'
8. requests库的基本使用
pip install requests
import requests url = "https://www.baidu.com" resp = requests.get(url) # 页面响应,解码后数据,编码是根据响应头部自动推测的,有可能不对,可以指定 resp.encoding = "utf-8" print(resp.text) # 页面响应数据,原始的bytes类型,需要自行解码 print(resp.content) print(resp.content.decode())
案例1. 拨号
import requests
import time
def dial():
url = "http://172.16.64.1/goform/formWebAuthUserSubmit?userName=xxx&userPasswd=xxxx&userCommand=userAuth"
resp = requests.get(url)
print("链接成功")
while True:
url = "https://www.baidu.com"
try:
requests.get(url, timeout=3)
except Exception as ret:
print(ret)
dial()
finally:
time.sleep(30)