python - bs4 - 根据其他值提取特定的 href
问题描述
所以,我试图通过给出尺寸 ID 来提取下面的特定 href 表单示例......例如,我想要一个值为 EU='39' 我希望能够准确打印所写的 href在分配欧盟 39 的行中
<a href="/p/nike-air-force-1-07-prm-x-carhartt-wip-av4113-200-83890-83891" EU='38,5' US='6'>38,5</a>
<li title="">
<a href="/p/nike-air-force-1-07-prm-x-carhartt-wip-av4113-200-83890-83892" EU='39' US='6,5'>39</a>
<li title="">
<a href="/p/nike-air-force-1-07-prm-x-carhartt-wip-av4113-200-83890-83893" EU='40' US='7'>40</a>
<li title="">
<a href="/p/nike-air-force-1-07-prm-x-carhartt-wip-av4113-200-83890-83894" EU='40,5' US='7,5'>40,5</a>
<li title="">
<a href="/p/nike-air-force-1-07-prm-x-carhartt-wip-av4113-200-83890-83895" EU='41' US='8'>41</a>
<li title="">
到目前为止,我的代码如下。我发现了如何获取单个 href,但我只想要那些具有我想要的尺寸 ID 和特定关键字的。我试过了,它奏效了,但它只是用那个关键字找到了所有东西......我想只得到那些具有特定价值的东西......
import requests
from bs4 import BeautifulSoup as bs
header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"}
s = requests.session()
scraper=cfscrape.create_scraper(sess=s)
link=input("link where I need to find the product: ")
keyword=["examplekeyword"]
def bs_id():
try:
r = scraper.get(link, timeout=2, verify=False, headers=header)
except:
print("error while connecting...")
try:
r = scraper.get(link, timeout=2, verify=False, headers=header)
except:
print("error while connecting")
return
page = bs(r.text, "html.parser")
raw_links = page.findAll("a")
hrefs = []
for raw_link in raw_links:
try:
hrefs.append(raw_link["href"])
except:
pass
for href in hrefs:
found = False
for keyword in keywords:
if(keyword.upper() in href.upper()):
found = True
if("http" in href):
product_page = href
else:
product_page = site + href
希望你们中的任何人都可以帮助我,我对此真的很陌生,所以每一个帮助评论都会很友善。非常感谢。
解决方案
您可以尝试这样的事情,而不是遍历 href,只需遍历整个“a”标签,然后获取所需的 href。这样你只需要一个循环。
for link in page.find_all('a'):
if "EU='39'" in link:
print(link['href'])
推荐阅读
- angular - Angular 6 - 从 A 组件的模板中调用 B 组件的字段
- android - ExoPlayer PlayerView OnClickListener 不工作
- python - 日志记录 + Lttng 框架日志不可用
- python - 我应该如何在 django 会话中存储购物车项目?
- swift - StackView 在所有屏幕尺寸上都显示不正确
- android - 如何使回收站视图的一部分加粗?
- regex - 捕获组的正则表达式替换表达式
- json - 如何将json数组传递给Listview In react Native
- javascript - 禁用扩展时检查是否安装了 chrome 扩展。
- javascript - 如何删除反应原生中的所有道具?