requests模块

requests模块

  • 使用requests模块进行网络数据的捕获

  • requests模块使用的编码流程:

    1. 指定url
    2. 发起请求
    3. 获得响应数据
    4. 数据解析
    5. 持久化存储

    官方文档

简单爬虫

# 爬取搜狗首页的页面数据
import requests

#指定url
url = 'https://www.sogou.com/'
#发起请求
response = requests.get(url=url)
#获取响应数据
page_text = response.text
#持久化存储
with open('./sogou.html','w',encoding='utf-8') as fp:
    fp.write(page_text)

url参数、UA伪装

#爬取搜狗指定词条搜索后的页面数据
url = 'https://www.sogou.com/web'

#处理参数
wd = input('enter a word:')
param = {
    'query':wd
}

#UA伪装
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
}

#发起请求
response = requests.get(url=url,params=param,headers=headers)

#获取响应数据
page_text = response.content

#持久化存储
fileName = wd+'.html'
with open(fileName,'wb') as fp:
    fp.write(page_text)
print(fileName,'下载成功!!!')

json数据与post请求

import requests

headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
}
url = 'https://fanyi.baidu.com/sug'
wd = input('enter a english word:')
#参数的处理
data = {
    'kw':wd
}
response = requests.post(url=url,data=data,headers=headers)

json_data = response.json()

print(json_data)

豆瓣电影

import requests
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
}
url = 'https://movie.douban.com/j/chart/top_list'
param = {
    "type": "13",
    "interval_id": "100:90",
    "action": "",
    "start": "0",
    "limit": "100",
}
json_data = requests.get(url=url,params=param,headers=headers).json()

print(json_data)

session

需要 session 的场景,保持状态。 如,登陆后的操作。

两种方法

  1. 直接使用 requests.Session 类,像使用 requests 一样, 不用的是内部会自动保存 cookies ,不过如果所有请求都直接使用 session ,请求量又很大,那将是很大的资源消耗。在需要用的时采用即可。
  2. 分析请求响应,手动将 cookies 添加进下次的请求中。
posted @ 2019-08-11 16:20  写bug的日子  阅读(109)  评论(0编辑  收藏  举报