立即登录

注册账号

联系我们

2022年3月14日 09:50

6. GET请求翻页处理

1. 开发者工具清除所有包.

2. 点击网页中的翻页链接

3. 观察新出现的包

4. 分析新包地址与旧包地址的规律

# 导入http请求库
import requests
# 导入HTML文本解析库
from bs4 import BeautifulSoup
# 防封技巧,为了防止爬取速度过快,可以用time.sleep在请求之间间隔
import time
# 请求网址
for i in range(1,4):
    url = f"http://www.shuajibang.net/news/9/{i}"
    # http://www.shuajibang.net/news/9/2
    r = requests.get(url)
    time.sleep(0.5)
    # 将HTML文件解析成soup对象,使用lxml解析器
    soup = BeautifulSoup(r.text,'lxml')
    # 用soup对象的select方法去定位元素
    data = soup.select('.jieshao p.p1 a')
    for d in data:
        print(d.get_text())

清华大学新闻

# 分析翻页规律
# https://www.tsinghua.edu.cn/news/qhgj/131.htm 第二页
# https://www.tsinghua.edu.cn/news/qhgj/130.htm 第三页
# https://www.tsinghua.edu.cn/news/qhgj/1.htm  最后一页
# url = "https://www.tsinghua.edu.cn/news/qhgj.htm"
for i in range(131,127,-1):
    url = f"https://www.tsinghua.edu.cn/news/qhgj/{i}.htm"
    r = requests.get(url)
    r.encoding = 'utf-8'
    time.sleep(0.5)
    # 将HTML文件解析成soup对象,使用lxml解析器
    soup = BeautifulSoup(r.text,'lxml')
    # 用soup对象的select方法去定位元素
    data = soup.select('.tit p.bt')
    for d in data:
        print(d.get_text(strip=True))

以上的翻页缺少第一页,第一页是一个特殊网址,需要构建urls网址列表,把第一页添加到列表中.

# 添加第一页的写法.
url0 = ["https://www.tsinghua.edu.cn/news/qhgj.htm"]
url = "https://www.tsinghua.edu.cn/news/qhgj/{}.htm"
urls = url0 + [url.format(i) for i in range(131,127,-1)]
for url in urls:
    r = requests.get(url)
    r.encoding = 'utf-8'
    time.sleep(0.5)
    # 将HTML文件解析成soup对象,使用lxml解析器
    soup = BeautifulSoup(r.text,'lxml')
    # 用soup对象的select方法去定位元素
    data = soup.select('.tit p.bt')
    for d in data:
        print(d.get_text(strip=True))

 

留言

给我留言