【发布时间】:2020-09-28 15:47:34
【问题描述】:
您好,我试图抓取以下网站:https://www.footlocker.co.uk/en/all/new/
我想抓取以下元素的价格和'href':
<span class=" fl-price--sale ">
<meta itemprop="priceCurrency" content="GBP">
<meta itemprop="price" content="84.99"><span>£ 84,99</span>
</span>
还有这个(href):
<a href="https://www.footlocker.co.uk/en/p/adidas-performance-don-issue-2-men-shoes-92815?v=314102617504#!searchCategory=all" data-product-click-link="314102617504" data-hash-key="searchCategory" data-hash-url="https://www.footlocker.co.uk/en/p/adidas-performance-don-issue-2-men-shoes-92815?v=314102617504" data-testid="fl-product-details-link-314102617504">
我试过这段代码:
import urllib.request
import bs4 as bs
from bs4 import BeautifulSoup
import requests
proxies = {'type':'ip:port'}
r= requests.get('https://www.footlocker.de/de/alle/new/', proxies=proxies)
soup = BeautifulSoup(r.content,'html.parser')
# It don't find it...
for a in (soup.find_all('a')):
try:
if a['href'] == 'https://www.footlocker.co.uk/en/p/adidas-performance-don-issue-2-men-shoes-92815?v=314102617504#!searchCategory=all':
print(a['href'])
except:
pass
# It don't find it...
for price in (soup.find_all('span', class_=' fl-price--sale ')):
print(price.text)
我尝试使用代理进行抓取,但他拒绝抓取元素(我认为 HTML 不正确)
感谢您的建议 :-)(仅用于教育建议)
【问题讨论】:
-
你确定
' fl-price--sale '应该在开头和结尾有空格吗? -
是的,我有没有空格的检查,你可以在链接上检查。
-
另外,
requests.get()不处理 javascript。如果页面具有动态创建您正在寻找的元素的 javascript,那么requests将不适合您。 -
我要如何抓取 javascript 动态元素?
-
你必须使用像真正的浏览器一样工作的东西,比如 Selenium。
标签: python web-scraping beautifulsoup