搜尋

首頁  >  問答  >  主體

使用 Python 抓取網頁但不確定如何處理靜態(?) URL

我正在嘗試學習如何從此網址提取資料: 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粉293341969P粉293341969313 天前388

全部回覆(1)我來回復

  • P粉600845163

    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())
    

    列印:

    <表类=“s-表”> <标题> SEQ NUM 納稅年度 通知 地塊 ID 臉部數量 中標 賣給 <正文> 96 000094 2020 00031-18-001-000 905.98 美元 81.00 美元 00005517 97 000095 2020 00031-18-002-000 750.13 美元 75.00 美元 00005517 98 000096 2020 00031-18-003-000 750.13 美元 75.00 美元 00005517 99 000097 2020 00031-18-004-000 750.13 美元 75.00 美元 00005517 100 000098 2020 00031-18-007-000 750.13 美元 76.00 美元 00005517 101 000099 2020 00031-18-008-000 905.98 美元 84.00 美元 00005517 102 000100 2020 00031-19-001-000 1,999.83 美元 171.00 美元 00005517 103 000101 2020 00031-19-004-000 1,486.49 美元 131.00 美元 00005517 104 000102 2020 00031-19-006-000 1,063.44 美元 96.00 美元 00005517 105 000103 2020 00031-20-001-000 1,468.47 美元 126.00 美元 00005517

    回覆
    0
  • 取消回覆