【发布时间】:2021-04-09 02:04:51
【问题描述】:
我试图弄清楚如何从 webpages 中解析订单号,该订单号从 here 开始。具体来说,如果您浏览此link,您可以看到与每个指向内页的容器相关联的Read more 链接。您将再次看到此Read more 链接与另一组容器相关联,这些容器指向最内页,最终指向订单号所在的this page。
我可以使用这段代码来获取与read more链接关联的链接:
import re
import requests
from bs4 import BeautifulSoup
base = 'https://www.rittal.com{}'
url = 'https://www.rittal.com/com-en/products/PG0002SCHRANK1'
def get_links(s,link):
r = s.get(link)
soup = BeautifulSoup(r.text,"html.parser")
for item_link in soup.select("a.custom-link:contains('Read more')"):
target_link = base.format(item_link.get("href"))
yield target_link
if __name__ == '__main__':
with requests.Session() as s:
s.headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'
for item in get_links(s,url):
print(item)
我可以使用以下代码块来解析订单号:
item = soup.select_one("list-filter")
item_ids = re.findall(r"variantId=(.*?)\&",str(item))
if item_ids:
for item_id in item_ids:
print(item_id)
我不明白的是如何递归解析从this link开始的订单号。
【问题讨论】:
-
你的意思是你想从this页面开始,得到一个商品的订单详情列表,返回然后到下一个商品重复?
-
是的,就是这样。
标签: python python-3.x recursion web-scraping beautifulsoup