网页源代码抓取工具(豆瓣电影排行榜基础教程:请求载体的身份标识(用啥发送的请求) )

优采云 发布时间: 2021-12-18 19:07

  网页源代码抓取工具(豆瓣电影排行榜基础教程:请求载体的身份标识(用啥发送的请求)

)

  请求:

  请求行 -> 请求方式(get/post) 请求url地址 协议

请求头 -> 放一些服务器要使用的附加信息

请求体 -> 一般放一些请求参数

  回复:

  状态行 -> 协议 状态码

响应头 -> 放一些客户端要使用的附加信息

响应体 -> 服务器返回的真正客户端要用的内容(HTML, json)等

  需要额外注意请求头和响应头,它们一般隐藏了一些重要的内容

  请求头中常用的一些重要内容:

  1. User-Agent:请求载体的身份(请求由什么发送)

  2. Referer: Anti-hotlinking(这个请求来自哪个页面?会用于反爬)

  3. cookie:本地字符串数据信息(用户登录信息、反爬取令牌)

  响应头中常用的一些重要内容:

  1. cookie:本地字符串数据信息(用户登录信息、反爬取令牌)

  2. 各种奇怪的字符串(根据经验判断,一般都是防止各种攻击和反爬的令牌)

  请求方法:(在爬虫中不重要)

  GET:显示提交

  2. POST:隐式提交

  开始使用请求:

  安装:

  pip install requests

  案例一:获取搜狗搜索结果

  import requests

url = 'https://www.sogou.com/web?query=周杰伦'

#所有地址栏里的请求方式一定为get

#需要修改User-Agent避免拦截

dic = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.164 Safari/537.36'

}

resp = requests.get(url, headers=dic)

print(resp) #响应状态码

print(resp.text) #页面源代码

resp.close()

  案例二:获取百度翻译结果

  import requests

url = 'https://fanyi.baidu.com/sug'

s = input('请输入要翻译的英文单词:')

#post方式

dat = {

'kw':s

}

# 发送post请求,发送的数据必须放在字典中,通过data参数进行传递

resp = requests.post(url, data=dat)

#print(resp.text) #返回乱码

print(resp.json()) # 将服务器返回的内容直接处理成json() => dict

resp.close()

  案例三:获取豆瓣分类电影排名

  import requests

# 原url:?type=5&interval_id=100%3A90&action=&start=0&limit=20 太复杂,重新封装参数

url = 'https://movie.douban.com/j/chart/top_list'

# 重新封装参数

param = {

'type': '5',

'interval_id': '100:90',

'action': '',

'start': '0',

'limit': '20'

}

# User-Agent

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.164 Safari/537.36'

}

resp = requests.get(url=url, params=param, headers=headers)

print(resp.json())

resp.close()

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线