我正在尝试学习如何从此网址提取数据: https://denver.coloradotaxsale.com/index.cfm?folder=auctionResults&mode=preview
但是,问题是当我尝试切换页面时,URL 不会改变,因此我不确定如何枚举或循环它。由于网页有 3000 个销售数据点,正在尝试寻找更好的方法。
这是我的起始代码,它非常简单,但我将不胜感激任何可以提供的帮助或任何提示。我想我可能需要换成另一个包,但我不确定哪个可能是 beautifulsoup?
导入请求 url =“https://denver.coloradotaxsale.com/index.cfm?folder=auctionResults&mode=preview” html = requests.get(url).content df_list = pd.read_html(html,标题 = 1)[0] df_list = df_list.drop([0,1,2]) #删除不需要的行
P粉6008451632024-02-18 09:42:37
要从更多页面获取数据,您可以使用以下示例:
导入请求 将 pandas 导入为 pd 从 bs4 导入 BeautifulSoup 数据 = { "folder": "拍卖结果", “登录ID”:“00”, "页数": "1", "orderBy": "AdvNum", "orderDir": "asc", "justFirstCertOnGroups": "1", "doSearch": "真", "itemIDList": "", "itemSetIDList": "", “兴趣”: ””, “优质的”: ””, "itemSetDID": "", } url =“https://denver.coloradotaxsale.com/index.cfm?folder=auctionResults&mode=preview” 所有数据 = [] for data["pageNum"] in range(1, 3): # <-- 增加此处的页数。 soup = BeautifulSoup(requests.post(url, data=data).content, "html.parser") 对于 soup.select("#searchResults tr")[2:] 中的行: tds = [td.text.strip() for row.select("td") 中的 td] all_data.append(tds) 列= [ “序列号”, “纳税年度”, “通知”, “包裹ID”, “面额”, “中标”, “卖给”, ] df = pd.DataFrame(all_data, columns=columns) # 打印数据框中的最后 10 项: 打印(df.tail(10).to_markdown())
打印: