Table1CalculatedCt–M–CtanglesIch kann diesen Titel nicht crawlen"> HTML-Elemente können beim Webcrawlen nicht gefunden werden. Dieses Element ist im Site-Inspection-Tool sichtbar-Fragen und Antworten zum chinesischen PHP-Netzwerk
HTML-Elemente können beim Webcrawlen nicht gefunden werden. Dieses Element ist im Site-Inspection-Tool sichtbar
P粉225961749
P粉225961749 2023-09-19 12:41:46
0
1
460

Ich versuche, die Titel aller Tabellen von dieser URL zu crawlen: https://www.nature.com/articles/s41586-023-06192-4

Ich finde dieses HTML-Element auf der Website:

Table 1 Calculated Ct–M–Ct angles

Ich kann diesen Titel nicht crawlen, da er nicht gefunden werden kann. Auch wenn ich das HTML-Skript auf der Konsole ausdrucke, kann dieses Element nicht gefunden werden.

Ich verwende den folgenden Code, um das HTML-Skript auszudrucken:

from requests_html import HTMLSession from bs4 import BeautifulSoup url = 'https://www.nature.com/articles/s41586-023-06192-4' session = HTMLSession() response = session.get(url) response.html.render() soup = BeautifulSoup(response.html.raw_html.decode('utf-8'), 'html.parser') print(soup.prettify())

Verwenden Sie die Crawling-Funktion von BeautifulSoup:

def get_tables(driver): tables = [] html = driver.page_source soup = BeautifulSoup(html, 'html.parser') for i in range(1, 11): try: table_caption = soup.find('b', {'id': f'Tab{i}', 'data-test': 'table-caption'}) table_text = table_caption.text if table_caption else "Not Available" if table_text != "Not Available": print(f"找到表格{i}:{table_text}") else: print(f"未找到表格{i}。") tables.append(table_text) except Exception as e: print(f"处理表格{i}时出错:{str(e)}") tables.append("Not Available") return tables

Verwenden Sie die Crawling-Funktion von Selenium:

def get_tables(driver): tables = [] for i in range(1, 11): try: table_caption = driver.find_element_by_css_selector(f'b#Tab{i}[data-test="table-caption"]') table_text = table_caption.text if table_caption else "Not Available" if table_text != "Not Available": print(f"找到表格{i}:{table_text}") else: print(f"未找到表格{i}。") tables.append(table_text) except Exception as e: print(f"处理表格{i}时出错:{str(e)}") tables.append("Not Available") return tables

Ich habe versucht, die Website mit Selenium und BeautifulSoup zu crawlen. Ich habe den Iframe überprüft. Ich habe den Abrufvorgang um 40 Sekunden verzögert, um sicherzustellen, dass die Seite vollständig geladen wird. Selbst GPT4 kann dieses Problem nicht lösen.

P粉225961749
P粉225961749

Antworte allen (1)
P粉920485285

所以你使用的代码看起来没问题,我想到的问题是,网站可能是通过JavaScript或某个XHR调用加载你要爬取的那个元素,因此当你使用requests库发送请求时,它无法获取到那个元素。

解决这个问题的方法是,尝试使用Selenium,用selenium打开网站,然后将页面源代码加载到bs4中,这样你的代码就能正常工作了。

注意:当整个网站加载完毕后,将页面源代码加载到bs4中。你还需要使用selenium创建一个登录功能,因为这个网站需要登录才能查看内容。

    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!