第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用 selenium 和 beautifulsoup 進(jìn)行網(wǎng)頁(yè)抓取時(shí)

使用 selenium 和 beautifulsoup 進(jìn)行網(wǎng)頁(yè)抓取時(shí)

慕田峪9158850 2021-11-04 15:40:41
我是網(wǎng)絡(luò)抓取的新手,并使用了 beautifulsoup 和 selenium。我正在嘗試從以下網(wǎng)頁(yè)抓取數(shù)據(jù):    https://epl.bibliocommons.com/item/show/2300646980我正在嘗試抓取以下部分:“包含該職位的員工名單”。特別是,我想獲取<li>標(biāo)簽的數(shù)量,因?yàn)槲抑恍枰搯T工列表中的項(xiàng)目/鏈接數(shù)量。我已經(jīng)在“檢查”頁(yè)面提供的 HTML 代碼上嘗試了以下內(nèi)容。以下是我試圖從中抓取的 HTML 代碼塊:<div class="ugc_bandage">  <div class="lists_heading clearfix">    <h3 data-test-id="ugc-lists-heading">      Listed    </h3>    <div class="ugc_add_link">      <div class="dropdown saveToButton clearfix" id="save_to_2300646980_id_7a3ateh0panp1uv0he1v7aqmj9" data-test-id="add-to-list-dropdown-container">  <a href="#" aria-expanded="false" aria-haspopup="true" class=" dropdown-toggle dropdown-toggle hide_trigger_icon" data-test-id="add-to-list-save-button" data-toggle="dropdown" id="save_button_2300646980_id_7a3ateh0panp1uv0he1v7aqmj9" rel="nofollow">       <i aria-hidden="true" class=" icon-plus"></i><span aria-hidden="true">Add</span><span class="sr-only" data-js="sr-only-dropdown-toggle" data-text-collapsed="Add, collapsed" data-text-expanded="Add, expanded">Add, collapsed</span><span aria-hidden="true" class="icon-arrow"></span></a>    <ul class="dropdown-menu">      <li>        <a href="/user_lists/new?bib=2300646980&amp;origin=https%3A%2F%2Fepl.bibliocommons.com%2Fitem%2Fload_ugc_content%2F2300646980" class="newList">Create a New List</a>      </li>      <li>        <a href="/lists/add_bib/mine?bib=2300646980_fangirl" data-js="cp-overlay" id="more_lists_id_7a3ateh0panp1uv0he1v7aqmj9">Existing Lists ?</a>      </li>  </ul></div>我已經(jīng)使用 xpath 抓取了上面的代碼,從檢查人員列表部分 ( id="all_lists_expand")復(fù)制而來(lái):    element = driver.find_elements_by_xpath('//*[@id="rightBar"]/div[3]/div')我嘗試通過(guò)使用類名抓取來(lái)抓取該部分:    element = driver.find_element_by_class_name('expand clearfix')我還嘗試使用 css 選擇器進(jìn)行抓?。?nbsp;   element = driver.find_element_by_css_selector('#all_lists_expand')我還做了上面代碼的其他變體,尋找元素的父類、xpaths 等。以上所有嘗試都返回NONE。我不確定我做錯(cuò)了什么,我是否應(yīng)該使用 selenium 觸發(fā)事件或其他東西?我什至沒(méi)有點(diǎn)擊列表中列出的任何鏈接,甚至沒(méi)有保留鏈接列表,我只需要計(jì)算有多少鏈接開(kāi)始。
查看完整描述

3 回答

?
九州編程

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超4個(gè)贊

你不需要硒的費(fèi)用。您可以對(duì)頁(yè)面執(zhí)行相同的 GET 請(qǐng)求,然后從返回的 json 中提取 html 并使用 bs4 解析并提取鏈接


import requests

from bs4 import BeautifulSoup as bs


r = requests.get('https://epl.bibliocommons.com/item/load_ugc_content/2300646980').json()

soup = bs(r['html'], 'lxml')

links = [i['href'] for i in soup.select('[data-test-id="staff-lists-that-include-this-title"] + div [href]')]

print(len(links))

print(links)


查看完整回答
反對(duì) 回復(fù) 2021-11-04
?
炎炎設(shè)計(jì)

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊

我已經(jīng)抓取了您的頁(yè)面并編寫了一個(gè) XPath,它將找到li“包含此職位的員工列表”下的所有元素。更新為包含wait所有相關(guān)li元素的a 。


WebDriverWait(driver, 10).until(EC.presence_of_all_elements_located((By.XPath, "//div[h4[text()='Staff Lists that include this Title']]/div[2]/ul/li[@class='']")))

driver.find_elements_by_xpath("//div[h4[text()='Staff Lists that include this Title']]/div[2]/ul/li[not(contains(@class, 'extra'))]")

此 XPath 查詢包含文本“包含此職位的員工列表”的元素下的div所有l(wèi)i項(xiàng)目的主元素h4。然后我們查詢div[2]哪些包含相關(guān)li項(xiàng)目。最后的查詢是針對(duì)li具有 EMPTY 類名的元素。從頁(yè)面源碼中可以看出,有很多隱藏的li帶有class='extra'屬性的元素。我們不想要這些li元素,因此我們繼續(xù)查詢not(contains(@class=, 'extra'))以獲取li沒(méi)有extra類名的元素。


如果上述 XPath 不起作用,我還修改了您在原始問(wèn)題中發(fā)布的另一個(gè) XPath:


WebDriverWait(driver, 10).until(EC.presence_of_all_elements_located((By.XPath, "//*[@id="rightBar"]/div[3]/div/div[2]/ul/li[not(contains(@class, 'extra'))]")))

driver.find_elements_by_xpath("//*[@id="rightBar"]/div[3]/div/div[2]/ul/li[not(contains(@class, 'extra'))]")

對(duì)于您提供的 URL,兩個(gè)查詢都檢索了 5 個(gè)結(jié)果:

http://img1.sycdn.imooc.com//61838fa50001a8dc19020768.jpg

查看完整回答
反對(duì) 回復(fù) 2021-11-04
?
慕斯709654

TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個(gè)贊

獲取所有的anchor 標(biāo)簽下的Staff Lists that Include that TitleinduceWebDriverWait和 presence_of_all_elements_located() 這會(huì)給你100 個(gè)鏈接。


from selenium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC


driver=webdriver.Chrome()

driver.get("https://epl.bibliocommons.com/item/show/2300646980")

elements=WebDriverWait(driver,10).until(EC.presence_of_all_elements_located((By.XPATH,'//h4[@data-test-id="staff-lists-that-include-this-title"]/following::div[1]//li/a')))

print(len(elements))

for ele in elements:

    print(ele.get_attribute('href'))


查看完整回答
反對(duì) 回復(fù) 2021-11-04
  • 3 回答
  • 0 關(guān)注
  • 161 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)