什么是爬虫
爬虫spider,是指向网站或者网络发出请求,获取资源后分析并提取对自己有用的数据的程序。
request
:是指用户将自己的信息通过浏览器发送给服务器。
response
:服务器收到用户的请求分析后,返回的数据。
注意
:浏览器在接收到服务器的response后,会解析出显示给用户,爬虫程序主要就是模拟浏览器向服务器发出请求并且接收到response后,提取自己需要的数据的过程。
request
请求方式
:get/post
请求的url
:用来定位互联网上的唯一资源。
User-agent
:没有请求头,服务端会当作非法用户host。
cookies
:用来保存登录信息。
爬虫程序一般都需要请求头~
请求有需要注意的几个参数:
referrer/User-Agent/cookie
请求体
:分两种情况,get请求不包含请求体,直接从放在url后面的参数中,如果post请求,请求体就是format data。
response
响应状态
:~200:成功 ~301:跳转 ~404:文件不存在 ~403:无权限访问 ~502:服务器错误
response header
:响应头需要注意的参数:set-Cookie:BDSVRTM=0;path=/: 可能会有多个参数,用来告诉浏览器,把cookie保存下来。
preview
:json数据
获取百度网页数据并放到文件中
from urllib.request import urlopen
url = "http://www.baidu.com"
resp = urlopen(url)
with open("mybaidu.html",mode="w") as f:
f.write(resp.read().decode("utf-8"))
print("over!")
百度翻译,输入一个单词并翻译
import requests
url = "https://fanyi.baidu.com/sug"
s = input("请输入你要翻译的单词:")
data = {
"kw":s
}
# 发送post请求,发送的数据必须放在字典中,通过data参数进行传递
resp = requests.post(url,data=data)
# 将服务器返回来的内容直接处理成json() =>dict
print(resp.json())
resp.close() #关掉resp
获取豆瓣的电影排行榜数据
import requests
url = "https://movie.douban.com/j/chart/top_list"
# 重新封装参数
param = {
"type": "11",
"interval_id":"100:90",
"action":"",
"start": 0,
"limit": 20
}
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36X-Requested-With: XMLHttpRequest"
}
resp = requests.get(url=url,params=param,headers=headers)
print(resp.json())
resp.close() #关掉resp