gpt4 book ai didi

python - REGEX 提取部分链接

转载 作者:行者123 更新时间:2023-12-01 04:06:21 25 4
gpt4 key购买 nike

我的目标是从拍卖网站页面上抓取一些拍卖 ID。页面是here

对于我感兴趣的页面,大约有 60 个拍卖 ID。 auctionID 前面有一个破折号,由 10 位数字组成,并在 .htm 之前终止。例如,在下面的链接中,ID 为 0133346952

<a href="/sports/cycling/mountain-bikes/full-suspension/auction-1033346952.htm" class="tile-2">

我已经通过识别“a”标签来提取所有链接。此代码位于页面底部。

根据我有限的知识,我认为 REGEX 应该是解决这个问题的正确方法。我在想 REGEX 类似:

-...........htm

但是,我未能成功地将正则表达式集成到代码中。我本来想像

for links in soup.find_all('-...........htm'):

本来可以达到目的,但显然不行。

如何修复此代码?

import bs4
import requests
import re
res = requests.get('http://www.trademe.co.nz/browse/categorylistings.aspx?mcatpath=sports%2fcycling%2fmountain-bikes%2ffull-suspension&page=2&sort_order=default&rptpath=5-380-50-7145-')
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, 'html.parser')
for links in soup.find_all('-...........htm'):
print (links.get('href'))

最佳答案

这是有效的代码:

for links in soup.find_all(href=re.compile("auction-[0-9]{10}.htm")):
h = links.get('href')
m = re.search("auction-([0-9]{10}).htm", h)
if m:
print(m.group(1))

首先,您需要一个正则表达式来提取 href。然后你需要一个捕获正则表达式来提取 id。

关于python - REGEX 提取部分链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35520738/

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