程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了网页抓取此字段大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决网页抓取此字段?

开发过程中遇到网页抓取此字段的问题如何解决?下面主要结合日常开发的经验,给出你关于网页抓取此字段的解决方法建议,希望对你解决网页抓取此字段有所启发或帮助;

我的代码进入一个网页,并识别页面中的每个块。

每个块都包含相同的信息样式格式。

然而,当我试图获得标题时,我什么也拉不出来?

理想情况下,我想要标题、摘要和作者。

这是我目前使用 xpath 尝试标题的代码。

网页抓取此字段

from SELEnium import webdriver
from bs4 import BeautifulSoup
import time
driver = webdriver.Chrome()

driver.get('https://meeTinglibrary.asco.org/results?filters=JTVCJTdCJTIyZmllbGQlMjIlM0ElMjJmY3RNZWV0aW5nTmFtZSUymiUyQyUymnZhbHVlJTIyJTNBJTIyQVNDTyUymEFubnVhbCUymE1lZXRpbmclMjIlMkMlMjJxDWVyeVZhbHVlJTIyJTNBJTIyQVNDTyUymEFubnVhbCUymE1lZXRpbmclMjIlMkMlMjJjaGlsZHJlbiUymiUzQSU1QiU1RCUyQyUymmluZGV4JTIyJTNBMCUyQyUymm5lc3RlZFBhdGglMjIlM0ElMjIwJTIyJTdEJTJDJTdCJTIyZmllbGQlMjIlM0ElMjJZZWFyJTIyJTJDJTIydmFsDWulMjIlM0ElMjIymDIxJTIyJTJDJTIycxvlcnlWYWx1ZSUymiUzQSUymjIwMjelMjIlMkMlMjJjaGlsZHJlbiUymiUzQSU1QiU1RCUyQyUymmluZGV4JTIyJTNBMSUyQyUymm5lc3RlZFBhdGglMjIlM0ElMjIxJTIyJTdEJTVE')
time.sleep(4)
page_source = driver.page_source
soup=BeautifulSoup(page_source,'HTMl.parser')
productList=soup.find_all('div',class_='ng-star-inserted')
for item in productList:
    title=item.find_elemenT_By_xpath("//span[@class='ng-star-inserted']").text
    print(titlE)

解决方法

from SELEnium.webdriver.common.by import By
from SELEnium.webdriver.support.ui import WebDriverWait 
from SELEnium.webdriver.support import expected_conditions as EC
wait=WebDriverWait(driver,40)
driver.get('https://meeTinglibrary.asco.org/results?filters=JTVCJTdCJTIyZmllbGQlMjIlM0ElMjJmY3RNZWV0aW5nTmFtZSUymiUyQyUymnZhbHVlJTIyJTNBJTIyQVNDTyUymEFubnVhbCUymE1lZXRpbmclMjIlMkMlMjJxdWVyeVZhbHVlJTIyJTNBJTIyQVNDTyUymEFubnVhbCUymE1lZXRpbmclMjIlMkMlMjJjaGlsZHJlbiUymiUzQSU1QiU1RCUyQyUymmluZGV4JTIyJTNBMCUyQyUymm5lc3RlZFBhdGglMjIlM0ElMjIwJTIyJTdEJTJDJTdCJTIyZmllbGQlMjIlM0ElMjJZZWFyJTIyJTJDJTIydmFsdWUlMjIlM0ElMjIymDIxJTIyJTJDJTIycXVlcnlWYWx1ZSUymiUzQSUymjIwMjelMjIlMkMlMjJjaGlsZHJlbiUymiUzQSU1QiU1RCUyQyUymmluZGV4JTIyJTNBMSUyQyUymm5lc3RlZFBhdGglMjIlM0ElMjIxJTIyJTdEJTVE')
productList=wait.until(EC.presence_of_all_elements_located((By.XPATH,"//div[@class='record']")))
for product in productList:
    title=product.find_elemenT_By_xpath(".//span[@class='ng-star-inserted']").text
    print(titlE)

使用 .// 并等待元素出现。您使用的 div 类也已关闭。

输出

A post-COVID survey of current and future parents among faculty,Trainees,and research staff at an...
Novel approach to improve the diagnosis of pediatric Cancer in Kenya via telehealth education.
Sexual harassment of oncologists.
Overall survival with circulaTing tumor DNA-guided therapy in advanced non-small cell lung Cancer.

另外两个是

.//div[@class='record__ellipsis']
.//span[.=' Abstract ']/following::span
,

试试下面的代码,如果您有任何疑问,请告诉我 -

from SELEnium import webdriver
from SELEnium.webdriver.support.ui import WebDriverWait
from SELEnium.webdriver.common.by import By
from SELEnium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
wait = WebDriverWait(driver,60)
driver.get(
    'https://meeTinglibrary.asco.org/results?filters=JTVCJTdCJTIyZmllbGQlMjIlM0ElMjJmY3RNZWV0aW5nTmFtZSUymiUyQyUymnZhbH'
    'VlJTIyJTNBJTIyQVNDTyUymEFubnVhbCUymE1lZXRpbmclMjIlMkMlMjJxdWVyeVZhbHVlJTIyJTNBJTIyQVNDTyUymEFubnVhbCUymE1lZXRpbmclM'
    'jIlMkMlMjJjaGlsZHJlbiUymiUzQSU1QiU1RCUyQyUymmluZGV4JTIyJTNBMCUyQyUymm5lc3RlZFBhdGglMjIlM0ElMjIwJTIyJTdEJTJDJTdCJTIy'
    'ZmllbGQlMjIlM0ElMjJZZWFyJTIyJTJDJTIydmFsdWUlMjIlM0ElMjIymDIxJTIyJTJDJTIycXVlcnlWYWx1ZSUymiUzQSUymjIwMjelMjIlMkMlMjJ'
    'jaGlsZHJlbiUymiUzQSU1QiU1RCUyQyUymmluZGV4JTIyJTNBMSUyQyUymm5lc3RlZFBhdGglMjIlM0ElMjIxJTIyJTdEJTVE')

AllRecords = wait.until(EC.presence_of_all_elements_located((By.XPATH,"//div[@class=\"record\"]")))

for SingleRecord in AllRecords:
    print("title :- " + SingleRecord.find_elemenT_By_xpath(
        "./descendant::div[contains(@class,\"record__title\")]/span").text)
    print("Author :- " + SingleRecord.find_elemenT_By_xpath(
        "./descendant::div[contains(text(),\"Author\")]/following-sibling::div").text)
    print("Abstract :- " + SingleRecord.find_elemenT_By_xpath(
        "./descendant::span[contains(text(),\"Abstract\")]/parent::div/following-sibling::span").text)
    print("-------------------------------------------------")

输出看起来像 -

网页抓取此字段

如果解决了,请将其标记为答案。

大佬总结

以上是大佬教程为你收集整理的网页抓取此字段全部内容,希望文章能够帮你解决网页抓取此字段所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。