【问题标题】:bs4 unable to find div with specific class using idbs4 无法使用 id 找到具有特定类的 div
【发布时间】:2021-05-02 09:20:14
【问题描述】:

div

因此,为了提高我的抓取技巧,我一直在尝试下载 https://ikeacatalogues.ikea.com/sv-1950/page/1 中的文档,但是当我尝试获取带或不带 id 的 div 时,我得到的只是 <div id="fakescroll"</div> 和我想要的是指向存在于锚标记中的文档的直接链接

target link

我也无法访问它。我厌倦了找到网页中存在的所有链接,它返回一个空列表。

请帮忙。这是我的代码。此代码返回空输出:

from bs4 import BeautifulSoup
from selenium import webdriver

url = "https://ikeacatalogues.ikea.com/sv-1950/page/1"
browser = webdriver.Chrome(executable_path="/path/to/chromedriver.exe")
browser.get(url)
soup = BeautifulSoup(browser.page_source,"html.parser")
items=soup.select(""div", {"id": "main_menu"}")
print(items)

这是我获取所有 href 的代码。输出为空。

import httplib2
from bs4 import BeautifulSoup, SoupStrainer

http = httplib2.Http()
status, response = http.request('https://ikeacatalogues.ikea.com/sv-1950/page/1')

for link in BeautifulSoup(response, parse_only=SoupStrainer('a')):
    if link.has_attr('href'):
        print(link['href'])

【问题讨论】:

    标签: python web-scraping beautifulsoup


    【解决方案1】:

    图像/文本嵌入在 <script> 标签内的页面中,因此 BeautifulSoup 看不到它们。您可以使用re/json 模块对其进行解码。例如:

    import re
    import json
    import requests
    
    
    url = "https://ikeacatalogues.ikea.com/sv-1950/page/1"
    
    text = requests.get(url).text
    data = re.search(r"var data = (\{.*\});", text)
    data = json.loads(data.group(1))
    
    # uncomment this to print all data:
    # print(json.dumps(data, indent=4))
    
    for s in data["spreads"]:
        for p in s["pages"]:
            print(p["text"])
            print("https://ikeacatalogues.ikea.com" + p["images"]["at2400"])
            print("#" * 80)
    

    打印:

    
    ...
    
    Samma fåtölj med lös plymå
    Nr 11 B Samma som ovanstående, men försedd med lös plymå, vilket är mycket popu­
    lärt och samtidigt lätt att rengöra. Plymån är av bästa resårkvalitet med avsydda kan­
    ter. Samma pris som nr 11.
    Nr 11/1 Samma som nr 11, men u ta n • nackkudde och i något mindre utförande. Ty g ­
    åtgång 1,6 meter.
    Pris pr styck komplett med tyg
    .................................................................................... 8 4 . 5 0
    Pris pr styck utan tyg
    ..................................................................................................... 71.50
    AB Tryckericentralen i lore*
    
    
    https://ikeacatalogues.ikea.com/77436/1101577/pages/bbe136e8-1317-474e-ba07-c48a4ded045e-at2400.jpg
    ################################################################################
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 2019-01-04
      • 2018-04-08
      • 2011-08-09
      相关资源
      最近更新 更多