Table1CalculatedCt–M–CtanglesSaya tidak boleh merangkak tajuk ini"> Elemen HTML tidak boleh ditemui semasa merangkak web. Elemen ini boleh dilihat dalam alat pemeriksaan tapak-Soal Jawab Rangkaian PHP Cina
Elemen HTML tidak boleh ditemui semasa merangkak web. Elemen ini boleh dilihat dalam alat pemeriksaan tapak
P粉225961749
P粉225961749 2023-09-19 12:41:46
0
1
467

Saya cuba merangkak tajuk semua jadual dari URL ini: https://www.nature.com/articles/s41586-023-06192-4

Saya boleh mencari elemen HTML ini di tapak web:

Table 1 Calculated Ct–M–Ct angles

Saya tidak dapat merangkak tajuk ini kerana ia tidak dapat ditemui. Walaupun saya mencetak skrip HTML ke konsol, elemen ini tidak dapat ditemui.

Saya menggunakan kod berikut untuk mencetak skrip HTML:

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())

Gunakan fungsi merangkak 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

Gunakan fungsi merangkak 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

Saya cuba menggunakan Selenium dan BeautifulSoup untuk merangkak tapak web. Saya telah menyemak iframe. Saya menangguhkan operasi pengambilan selama 40 saat untuk memastikan halaman dimuatkan sepenuhnya. Malah GPT4 tidak dapat menyelesaikan masalah ini.

P粉225961749
P粉225961749

membalas semua (1)
P粉920485285

Jadi kod yang anda gunakan kelihatan baik, masalah yang terlintas di fikiran ialah tapak web mungkin memuatkan elemen yang anda ingin crawl melalui JavaScript atau beberapa panggilan XHR, jadi apabila anda menggunakan perpustakaan permintaan untuk menghantar permintaan, ia tidak dapat ia Unsur itu.

Cara untuk menyelesaikan masalah ini ialah cuba menggunakanSelenium, buka laman web dengan selenium, dan kemudian muatkan kod sumber halaman ke dalam bs4, supaya kod anda akan berfungsi seperti biasa.

Nota:Apabila keseluruhan laman web dimuatkan, muatkan kod sumber halaman ke dalam bs4. Anda juga perlu mencipta fungsi log masuk menggunakan selenium, kerana laman web ini memerlukan log masuk untuk melihat kandungan.

    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!