Python 如何从Dell.com获取重定向URL列表
我正在做一个网页清理项目,想从戴尔网站上获得一份产品清单。我找到了这个链接(),它会弹出一个包含产品类别列表的框(实际上只是重定向URL。如果没有找到,请单击“浏览所有产品”按钮)。我尝试使用Python请求获取页面并将文本保存到一个要解析的文件中,但响应不包含任何类别/重定向URL。我的代码是最基本的:Python 如何从Dell.com获取重定向URL列表,python,web-scraping,get,python-requests,Python,Web Scraping,Get,Python Requests,我正在做一个网页清理项目,想从戴尔网站上获得一份产品清单。我找到了这个链接(),它会弹出一个包含产品类别列表的框(实际上只是重定向URL。如果没有找到,请单击“浏览所有产品”按钮)。我尝试使用Python请求获取页面并将文本保存到一个要解析的文件中,但响应不包含任何类别/重定向URL。我的代码是最基本的: import requests url = "https://www.dell.com/support/home/us/en/04/products/" page = requests.ge
import requests
url = "https://www.dell.com/support/home/us/en/04/products/"
page = requests.get(url)
with open("laptops.txt", "w", encoding="utf-8") as outf:
outf.write(page.text)
outf.close()
有没有办法获取这些重定向URL?我基本上是在尝试为他们的产品制作自己的网站地图,这样我就可以大致了解每一个产品的细节。感谢您尝试使用selenium chrome驱动程序,它有助于处理网站上的动态数据,还具有单击按钮、处理页面刷新等功能
尝试使用selenium chrome驱动程序,它有助于处理网站上的动态数据,还具有单击按钮、处理页面刷新等功能
此页面使用JavaScript获取和显示这些链接-但是
请求/urllib
和美化组/lxml
无法运行JavaScript
使用Firefox
/Chrome
(选项卡:Network
)中的DevTools
),我发现它是从url读取的
所以我用它来获取链接
您可能必须更改url中的country=pl&language=pl
,才能获得不同语言的url
顺便说一句:另一种方法是使用Selenium
来控制可以运行JavaScript的真实web浏览器。此页面使用JavaScript来获取和显示这些链接-但是请求/urllib
和BeautifulSoup
/lxml
无法运行JavaScript
使用Firefox
/Chrome
(选项卡:Network
)中的DevTools
),我发现它是从url读取的
所以我用它来获取链接
您可能必须更改url中的country=pl&language=pl
,才能获得不同语言的url
顺便说一句:另一种方法是使用Selenium
控制可以运行JavaScript的真实web浏览器。如果页面使用JavaScript添加元素,那么您无法通过请求和美化组获得它,因为它们无法运行JavaScript。您可能必须使用Selenium
来控制可以运行JavaScript的真实web浏览器。或者,如果javascript从其他URL读取数据,您可以在Firefox/Chrome(选项卡:网络)中签入DevTools,然后您可以将此URL用于请求。如果页面使用javascript添加元素,则您无法通过请求和美化组获得它,因为它们无法运行javascript。您可能必须使用Selenium
来控制可以运行JavaScript的真实web浏览器。或者,如果javascript从其他URL读取数据,您可以在Firefox/Chrome(选项卡:网络)中签入DevTools,然后您可以在请求中使用此URL。
import requests
from bs4 import BeautifulSoup as BS
url = "https://www.dell.com/support/components/productselector/allproducts?category=all-products/esuprt_&country=pl&language=pl®ion=emea&segment=bsd&customerset=plbsd1&openmodal=true&_=1589265310743"
response = requests.get(url)
soup = BS(response.text, 'html.parser')
all_items = soup.find_all('a')
for item in all_items:
print(item.text, item['href'])