阿里云爬虫项目课程笔记【4】:Requests 模块 与 云栖社区博文爬虫实战

本文深入讲解了Python中Requests模块的使用方法,包括发送GET和POST请求、处理响应数据等核心功能,并通过实例展示了如何利用该模块进行云栖社区博文的爬虫实战。


Requests 模块

发送

参数说明
paramsget请求所用的参数
headers添加头信息
proxies添加代理
cookiescookie
dataput请求的数据

接收

参数内容
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 markdown-body">(.*?)<div class="copyright-outer-line">'
        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】常见的反爬策略与反爬攻克手段、腾讯漫画爬取实战 与 分布式爬虫

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值