Python爬虫:requests模块深入及案例
* [案例二:输入单词获取百度翻译的结果](about:blank#_40)
* [案例三:获取豆瓣电影的评分前几名的电影信息](about:blank#_87)
* [案例四:通过在药监局网站中的企业id值获取企业信息](about:blank#id_121)
requests.get(url= ,params= ,headers= )
-
url:请求地址
-
params:url携带的参数,字典类型
指定url发起请求是携带参数的,请求时将params中的字典类型数据转换为url中参数。
import requests
# 在CSDN中搜索,参数q为搜索关键字
searchURL = 'https://so.csdn.net/so/search'
# 处理url携带的参数:封装到字典中
keyWord = input('CSDN Search KeyWord is :')
param = {
# 请求所需的参数,字典类型
'q':keyWord
}
response = requests.get(url=searchURL ,params=param)
# 指定url发起请求是携带参数的,请求时将params中的字典类型数据转换为url中参数
pageText = response.text
# 爬取到的文本数据
fileName = keyWord + '.html'
with open('./dataFiles/'+fileName,'w',encoding='utf-8') as fp:
fp.write(pageText)
# 生成以关键字命名的html文件
检查网页可知,百度翻译的请求方式为post,需要用到requests.post()。关键字为data里面的kw。
requests.post(url= ,data= ,headers= )
-
url:请求页面
-
data:关键字,字典类型
-
headers:头信息,字典类型,用于UA伪装
# 百度翻译
# - post请求
# - 响应数据是JSON格式
import requests
import json
postURL = 'https://fanyi.baidu.com/sug'
# UA伪装
postHeader = {
'User-Agent': '来自网页检查'
}
# 参数处理
data = {
'kw': 'baby'
# post请求的参数数据与get一致,与get方法不同的是不显示在地址栏,可以通过检查查看
# kw为网址指定的参数名,若修改则发生未知错误
}
# 发送请求
response = requests.post(url=postURL, data=data, headers=postHeader)
# 获取响应数据,json格式
dataObj = response.json()
print(dataObj)
# 存储
jsonFilePath = open('./dataFiles/dog.json', 'w', encoding='utf-8')
json.dump(dataObj, fp=jsonFilePath, ensure_ascii=False)
print('Over!')
方法与上面两个案例类似,直接看代码
# 获取豆瓣电影排行榜信息
import requests
import json
doubanURL = 'https://movie.douban.com/j/chart/top_list?'
# url地址
doubanParam = {
#参数
'type_name':'喜剧',
'type': 24,
'interval_id': '100:90',
'start':'1', # 从第几部电影开始取
'limit':'10' # 取出的个数
}
doubanHeader = {
# 头信息,用于UA伪装
'User-Agent':'来自网页检查'
}
response = requests.get(url=doubanURL ,params=doubanParam ,headers=doubanHeader)
print(response.json())
fp = open('./dataFiles/doubanTop10.json','w',encoding='utf-8')
json.dump(response.json(),fp=fp,ensure_ascii=False)
print('Over.....')