gpt4 book ai didi

python - 如何使用 BeautifulSoup 抓取网页 url

转载 作者:行者123 更新时间:2023-11-30 22:55:19 31 4
gpt4 key购买 nike

我开始使用网页抓取,我想从下面提供的特定页面获取 URL。

import requests
from bs4 import BeautifulSoup as Soup

page = "http://www.zillow.com/homes/for_sale/fore_lt/2-_beds/any_days/globalrelevanceex_sort/57.610107,-65.170899,15.707662,-128.452149_rect/3_zm/"

response = requests.get(page)
soup = Soup(response.text)

现在,我有了汤内容中页面的所有信息,我想获取图像中提供的所有家庭的网址 enter image description here

当我检查家里的任何视频时,chrome 会打开图像中的此 DOM 元素:

enter image description here

如何获取 <a href=""> 内的链接使用 soup 标记?我认为父级是 <div id = "lis-results"> ,但是,我需要一种导航到该元素的方法。实际上,我需要一个文本文件中的所有 URL(391,479)。

Zillow 有一个 API,还有 Python 包装器,可以方便地进行此类数据工作,我现在正在查看代码。我需要获取的只是待售 -> 止赎和潜在列表 -> 止赎和预止赎信息的 URL。

最佳答案

问题是您发送的请求未获取 URL。事实上,如果我查看响应(使用例如 jupyter),我会得到: Missing the important part

我建议采用不同的策略:这些类型的网站通常通过 json 文件进行通信。

从 Firefox 中 Web DeveloperNetwork 选项卡中,您可以找到请求 json 文件的 URL:

Firefox Network Tab

现在,通过此文件,您可以获得所需的所有信息。

import json
page = "http://www.zillow.com/search/GetResults.htm?spt=homes&status=110001&lt=001000&ht=111111&pr=,&mp=,&bd=2%2C&ba=0%2C&sf=,&lot=,&yr=,&pho=0&pets=0&parking=0&laundry=0&income-restricted=0&pnd=0&red=0&zso=0&days=any&ds=all&pmf=1&pf=1&zoom=3&rect=-134340820,16594081,-56469727,54952386&p=1&sort=globalrelevanceex&search=maplist&disp=1&listright=true&isMapSearch=true&zoom=3"
response = requests.get(page) # request the json file
json_response = json.loads(response.text) # parse the json file
soup = Soup(json_response['list']['listHTML'], 'html.parser')

这汤里有你想要的东西。如果你探索 json,你会发现很多有用的信息。所有 URL 的列表可以通过

找到
links = [i.attrs['href'] for i in soup.findAll("a",{"class":"hdp-link"})] 

所有 URL 均出现两次。如果您希望它们是唯一的,则可以修复该列表,或者在上面的类中查找“hdp-link routable”。但是,我总是喜欢多而不是少!

关于python - 如何使用 BeautifulSoup 抓取网页 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37465172/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com