簡體   English   中英

使用美麗的湯 python 從標簽內部提取 html ID

[英]extract a html ID from inside a tag using beautiful soup python

我正在嘗試僅提取 html 中的 iid 代碼,以便我可以將 append 提取到 url 並打開我需要的頁面。

我可以通過指定標簽的 class 來找到我需要的標簽。 但是我還在 output 中獲得了 4 個其他標簽。 我想要的只是第一個標簽“183988596953”中的 iid

我嘗試使用此代碼僅指定 idd

rslt_table = soup.find_all("iid",{"div class": "lvpic pic img left"})

然而,這似乎只返回一個空列表 []

我在用下面的最后一行代碼重新調整上面的代碼行時得到的 output 是 output,帶有我提到的 4 個標簽

from bs4 import BeautifulSoup
import requests
import re

urls = ['https://www.ebay.co.uk/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=goldfinger+quad']

#https://www.ebay.co.uk/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=

def find_id(urls):
    for url in urls:
        session = requests.session()
        response = session.get(url)
        #soup = BeautifulSoup(response.content, "lxml")
        soup = BeautifulSoup(response.content, "html.parser")
        rslt_table = soup.find("div", {"class": "lvpic pic img left"})
        return(rslt_table)

My search url is https://www.ebay.co.uk/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=goldfinger+quad '

全輸出是

<div class="lvpic pic img left" iid="183988596953">
<div class="lvpicinner full-width picW">
<a class="img imgWr2" href="https://www.ebay.co.uk/itm/GOLDFINGER-1964-Style-A-B-UK-Cinema-High-Quality-Repro-30-x-40-quad-poster/183988596953?hash=item2ad69330d9:g:rYQAAOSwrENdbmEW">
<img alt='GOLDFINGER 1964 Style A &amp; B -  UK Cinema High Quality Repro 30"x 40" quad poster' class="img" src="https://i.ebayimg.com/thumbs/images/g/rYQAAOSwrENdbmEW/s-l225.jpg"/>
</a>
</div></div>

您的代碼已更新:

  • 使用attrs返回所有屬性
    • {'class': ['lvpic', 'pic', 'img', 'left'], 'iid': '183988596953'}
def find_id(urls):
    for url in urls:
        session = requests.session()
        response = session.get(url)
        soup = BeautifulSoup(response.content, "html.parser")
        return soup.find("div", {"class": "lvpic pic img left"}).attrs['iid']

iid = find_id(urls)

print(iid)

>>> '183988596953'

如果你想要所有iid

def find_id(urls):
    for url in urls:
        session = requests.session()
        response = session.get(url)
        soup = BeautifulSoup(response.content, "html.parser")
        div = s.find_all("div", attrs={'class': 'lvpic pic img left'})
        return [iid.attrs['iid'] for iid in div]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM