python - 如何在网站上实现用户输入以转到特定网站进行抓取
问题描述
我一直在使用网络爬虫来获取特定邮政编码的天气。但是,我不知道如何使用网站上的用户输入来接收他们特定邮政编码的天气
我没有尝试太多,因为我对输入用户输入不是很熟悉
import requests
from bs4 import BeautifulSoup
import pandas as pd
r = requests.get(
"https://forecast.weather.gov/MapClick.php?lat=33.870330000000024&lon=-117.92895999999996"
)
soup = BeautifulSoup(r.content, "html.parser")
week = soup.find(id="seven-day-forecast-body")
items = week.find_all(class_="tombstone-container")
period_names = [item.find(class_="period-name").get_text() for item in items]
short_descriptions = [item.find(class_="short-desc").get_text() for item in items]
temps = [item.find(class_="temp").get_text() for item in items]
weather = pd.DataFrame(
{"Period": period_names, "Description": short_descriptions, "Temperature": temps}
)
print(weather)
weather.to_csv("weather.csv")
解决方案
推荐阅读
- python - etree 将节点属性插入过滤的子节点
- java - Android - 线程问题(随机字符在按钮中切换,直到单击按钮)
- go - GO编程,在阅读器事件上阻塞读取功能
- r - 无法在 jupyter 中加载 ggmap 包
- redux-form - 带有 Reactstrap 的 Redux-form
- java - Java Android getApplicationContext() 从上一个类返回一个空对象
- swift - 即使在保护自我和非可选属性之后,也可以获取“在初始化之前使用的变量‘self.xxx’”
- ios - 如何处理拍摄的图像,然后使用 Swift 将结果查看到“文本视图”?
- mongodb - MongoDB 从子子数组中删除所有匹配项
- java - 来自先前 Spring Boot 测试的 Quartz 作业随机仍在运行