Request库获取静态网页
安装
pip insatall requests
常用命令
符号 | 含义 |
---|---|
res = requests.get(link,headers=headers,timeout = 10) | 访问link 链接,请求头为headers ,超过10秒网站不反应关闭 |
res .encoding | 文本编码方式 |
res .status_code | 检测状态响应的,返回200:表示请求成功;返回"4xx":表示客户端错误;返回"5xx":表示服务器错误; |
res.text | 字符串方式的响应体,会自动根据响应头部的字符编码进行解码 |
res.content | 字节方式的响应体,会自动解码响应数据 |
r = requests.get(url=‘http://dict.baidu.com/s’, params={‘wd’:‘python’}) | 带参数的GET请求 |
requests.post(“http://httpbin.org/post”) | POST请求 |
对于WEB系统一般只支持 GET 和 POST,有一些还支持 HEAD 方法。
示例 获取豆瓣电影名
import requests
from bs4 import BeautifulSoup
headers = {
'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36',
'Host':'movie.douban.com'
}
movie_list = []
for i in range(0,10):
link = 'https://movie.douban.com/top250?start=' + str(i*25)
res = requests.get(link,headers=headers,timeout = 10)
soup = BeautifulSoup(res.text,"lxml")
div_list = soup.find_all('div', class_ = 'hd')
# print(div_list)
# div_list =soup.find_all('div',class = 'hd')
for each in div_list:
movie = each.a.span.text.strip()
movie_list.append(movie)
for i in movie_list:
print(i)
each.a.span.text.strip()
取出each中、中的文本内容。
访问豆瓣TOP250电影名称、时间、导演的完整程序可以参考:python——爬虫示例读取豆瓣电影数据