Requests 模块
发送
| 参数 | 说明 |
|---|
| params | get请求所用的参数 |
| headers | 添加头信息 |
| proxies | 添加代理 |
| cookies | cookie |
| data | put请求的数据 |
接收
| 参数 | 内容 |
|---|
| text | 响应数据 |
| content | 响应数据(二进制类型) |
| decoding | 网页编码 |
| cookies | 响应cookie |
| url | 当前请求的url |
| status_code | 响应状态码 |
例子
import requests
import re
hd = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36"}
px = {"http": "http://127.0.0.1:8888"}
pr = {"wd": "阿里文学"}
rst = requests.get("https://www.aliwx.com.cn/", headers = hd)
title = re.compile("<title>(.*?)</title>", re.S).findall(rst.text)
rst = requests.get("http://www.baidu.com/s", params=pr)
requests.utils.dict_from_cookiejar(rst.cookies)
postdata = {"name":"admin", "pass":"root"}
requests.post("http://www.baidu.com", data = postdata)
云栖社区博文爬虫实战
import requests
import re
import time
key = "Python"
url = "https://yq.aliyun.com/search/articles"
data = requests.get(url, params={"q": key}).text
pat1 = '<div class="_search-info">找到(.*?)条关于'
allline = re.compile(pat1, re.S).findall(data)[0]
allpage = int(allline) // 15 + 1
for i in range(0, int(allpage)):
print("正在爬第" + str(i + 1) + "页")
index = str(i + 1)
getdata = {'q': key, 'p': index}
data = requests.get(url, params=getdata).text
pat_url = '<div class="media-body text-overflow">.*?<a href="(.*?)">'
articles = re.compile(pat_url, re.S).findall(data)
for j in articles:
thisurl = 'https://yq.aliyun.com' + j
thisdata = requests.get(thisurl).text
pat_title = '<p class="hiddenTitle">(.*?)</p>'
pat_content = '<div class="content-detail unsafe markdown-body">(.*?)<div class="copyright-outer-line">'
title = re.compile(pat_title, re.S).findall(thisdata)[0]
content = re.compile(pat_content, re.S).findall(thisdata)[0]
fh = open("./" + str(i) + "_" + str(time.time()) + ".html", 'w', encoding='utf-8')
fh.write(title + '<br /><br />' + content)
fh.close()
其他小节笔记
阿里云爬虫项目课程笔记【1】:正则表达式 与 XPath表达式
阿里云爬虫项目课程笔记【2】:Urllib模块 与 糗事百科爬取实战
阿里云爬虫项目课程笔记【3】:腾讯视频评论实战
阿里云爬虫项目课程笔记【5】:Scrapy 模块 与 当当爬虫实战
阿里云爬虫项目课程笔记【6 - 8】:招聘信息、淘宝网商品信息 与 知乎 爬虫实战
阿里云爬虫项目课程笔记【9 & 10】常见的反爬策略与反爬攻克手段、腾讯漫画爬取实战 与 分布式爬虫