python-3.x - 循环页面并在 Python 中抓取内容
问题描述
我想从这个链接爬取内容:
我怎样才能循环所有页面并爬取红色圆圈中的所有元素?谢谢。
代码:
from bs4 import BeautifulSoup
import requests
import os
from urllib.parse import urlparse
url = 'http://www.eoechina.com.cn/cn2019/gonggaoxinxi.html?classID=1'
r = requests.get(url)
soup = BeautifulSoup(r.content, "html.parser")
print(soup)
解决方案
您可以查询一个端点以循环浏览页面。
就是这样:
from urllib.parse import urlencode
import requests
import pandas as pd
end_point = "http://www.eoechina.com.cn/cn2016/mobile/GetArticleList.ashx"
payload = {
"pageNumber": 1,
"classID": 1,
"searchKey": "",
"selectItemID": "72,"
}
headers = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:86.0) "
"Gecko/20100101 Firefox/86.0",
"X-Requested-With": "XMLHttpRequest",
}
for page in range(1, 5):
payload["pageNumber"] = page
response = requests.post(
end_point,
data=urlencode(payload),
headers=headers,
).json()
# print("\n".join(item["title"] for item in response))
df = pd.DataFrame(response)
print(df)
示例输出:(这是一个屏幕截图,因为 SO 认为输出是垃圾邮件......)
推荐阅读
- javascript - Javascript号码交换
- django - Django many 2 many through rest framework
- angular - 如何在 Angular 的根组件中添加模板?
- python - 有没有办法使用 Python 自动校准 OpenCV 中的 detectMultiscale() 中的比例和邻居?
- php - 函数没有被回调给登录用户
- json - 如何从 JSON 中获取值,其中 JSON 以 RestAssured 中的 Array Block 开头
- reactjs - 我想使用 D3 和 Chartjs 在 React 中绘制前 100 行本地 CSV
- mysql-workbench - MySQL Workbench 8.0 CE:获取上一帧按钮丢失
- excel - 用于打开 Visual Basic 编辑器的 Excel 宏
- amazon-web-services - 我无法弄清楚我在 AWS IAM 中缺少允许编辑防火墙规则的权限