欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python+selenium對table表和分頁處理

 更新時(shí)間:2022年01月26日 17:12:01   作者:bulabula2022??  
這篇文章主要介紹了python+selenium對table表和分頁處理,文章內(nèi)容只要包括bulabula2022、table表分頁處理、網(wǎng)頁table所有內(nèi)容循環(huán)處理等相關(guān)內(nèi)容,需要的小伙伴可以參考一下

python+selenium編寫實(shí)現(xiàn)爬蟲過程:

  • 1.爬蟲循環(huán)處理table表,
  • 2.table表分頁處理,
  • 3.網(wǎng)頁table所有內(nèi)容循環(huán)處理
  • 4.獲取隱藏的href超鏈接內(nèi)容,
  • 5.所有數(shù)據(jù)本地csv保存,

代碼如下:

from selenium.webdriver.chrome.options import Options
import pandas as pd
import math
from selenium import webdriver
import time
# 配置chrome的參數(shù)
options = Options()
options.add_argument('--headless')
# options.add_experimental_option('excludeSwitches', ['enable-automation']) #避開驗(yàn)證碼
# 獲取一個(gè)瀏覽器對象
browser = webdriver.Chrome(chrome_options=options)
browser.get("C:\\Users\\XXXX\\XXXX.html")
# 打印整個(gè)表格信息
# print(browser.find_element_by_xpath("http://*[@id=\"versions-bom-layout\"]/div/div[5]/div/div/div/div[1]/table/tbody").text)
?
?
data = [] ?# 建立空列表存儲表格信息
# 獲取總頁數(shù)(通過二次定位方法進(jìn)行定位)
# total_pages1 = len(browser.find_element_by_class_name("pagination").find_elements_by_tag_name("li")) - 2
# print("total_pages is %s" % (total_pages1))
?
# 共有多少個(gè)組件需要提取
total_num = \
? ? browser.find_element_by_xpath("http://*[@id=\"versions-bom-layout\"]/div/div[5]/div/div/div/div[1]/div").text.split(
? ? ? ? '共')[1]
print(f'total_num====::::::::{total_num}')
?
total_pages = math.ceil(int(total_num) / 100) + 1 ?# 每頁顯示100個(gè)組件, 獲取總頁數(shù)
print(f'total_pages====::::::::{total_pages}')
time.sleep(10) ?#
?
# total_pages = len(browser.find_element_by_tag_name('select').find_element_by_tag_name('option'))
for i in range(1, total_pages): ?# page:總共有total_pages-1頁
? ? # # 獲取分頁輸入框標(biāo)簽的定位
? ? # inputpage = browser.find_element_by_xpath("http://*[@id='pager_center']/table/tbody/tr/td[5]/input")
? ? # # 首先清除輸入框里面的數(shù)字
? ? # inputpage.clear()
? ? # # 然后發(fā)送頁碼,我們?yōu)榱朔奖悖桶训谝豁撘矊懺诹死锩?
? ? # inputpage.send_keys(str(i))
? ? # # 最后模擬鍵盤點(diǎn)擊Enter鍵
? ? # inputpage.send_keys(Keys.ENTER)
? ? # # 為了是數(shù)據(jù)刷新出來,做了一個(gè)小小的死延時(shí)處理
?
? ? time.sleep(10) ?# 讓瀏覽器先加載一下動(dòng)態(tài)頁面
? ? t_body = browser.find_element_by_tag_name('tbody') ?# 定位表格主體
? ? tr_list = t_body.find_elements_by_tag_name('tr') ?# 定位表格每一行
? ? numbers = len(tr_list)
? ? print(f'tr_list[0].text===={tr_list[0].text}')
?
? ? # for i in range(numbers):
? ? for tr in tr_list:
? ? ? ? td_list = tr.find_elements_by_tag_name('td') ?# 定位表格每個(gè)單元格
? ? ? ? lst = [] ?# 建立空列表存儲每行信息
? ? ? ? for td in td_list:
? ? ? ? ? ? # lst.append("B-momv2core-121-anyreport-BinaryScan") ?# 添加版本信息
? ? ? ? ? ? lst.append(td.text) ?# 添加每個(gè)單元格的文本信息
? ? ? ? ? ? href = td_list[4].find_element_by_tag_name('a').get_attribute("href") ?# 獲當(dāng)前行第5個(gè)td單元格的超鏈接
? ? ? ? print(u"第n行第n列的text:", href)
? ? ? ? lst.append(href) ?# print(u"第一行第二列的text:", href) ?# 添加文件鏈接
? ? ? ? data.append(lst) ?# 添加每行信息
?
? ? # 點(diǎn)擊下一頁邏輯判斷
? ? # 如果table只有1頁,不作處理,直接退出循環(huán)
? ? # 如果table只有2頁,點(diǎn)擊下一頁處理?xiàng)l件(total_pages == 3 and i == 1)
? ? # 如果table2頁以上,點(diǎn)擊下一頁處理?xiàng)l件(total_pages > 3 and i < (total_pages - 1))
? ? if total_pages == 3 and i == 1:
? ? ? ? browser.find_element_by_xpath("http://*[contains(text(),'下一頁')]").click()
?
? ? elif total_pages > 3 and i < (total_pages - 1):
? ? ? ? browser.find_element_by_xpath("http://*[contains(text(),'下一頁')]").click()
?
df = pd.DataFrame(data,
? ? ? ? ? ? ? ? ? columns=['選擇', '策略', '審核', '版本組', '匹配數(shù)', '3', '4', '5', '6', '7', '8', '9', '10', '來源鏈接'])
df.to_csv('獲取未知xxx.csv', encoding='utf_8_sig')
browser.quit()

效果圖:

到此這篇關(guān)于python+selenium對table表和分頁處理的文章就介紹到這了,更多相關(guān)python+selenium table表,分頁處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在python中按照特定順序訪問字典的方法詳解

    在python中按照特定順序訪問字典的方法詳解

    今天小編就為大家分享一篇在python中按照特定順序訪問字典的方法詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python魔法方法-自定義序列詳解

    python魔法方法-自定義序列詳解

    下面小編就為大家?guī)硪黄猵ython魔法方法-自定義序列詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-07-07
  • Python中獲取對象信息的方法

    Python中獲取對象信息的方法

    這篇文章主要介紹了Python中獲取對象信息的方法,是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-04-04
  • keras中的卷積層&池化層的用法

    keras中的卷積層&池化層的用法

    這篇文章主要介紹了keras中的卷積層&池化層的用法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • python通過函數(shù)名調(diào)用函數(shù)的幾種方法總結(jié)

    python通過函數(shù)名調(diào)用函數(shù)的幾種方法總結(jié)

    今天帶大家學(xué)習(xí)的是怎么使用python通過函數(shù)名調(diào)用函數(shù),文中對python通過函數(shù)名調(diào)用函數(shù)的幾種方法有非常詳細(xì)的介紹,需要的朋友可以參考下
    2021-06-06
  • 在matlab中創(chuàng)建類似字典的數(shù)據(jù)結(jié)構(gòu)方式

    在matlab中創(chuàng)建類似字典的數(shù)據(jù)結(jié)構(gòu)方式

    這篇文章主要介紹了在matlab中創(chuàng)建類似字典的數(shù)據(jù)結(jié)構(gòu)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Linux安裝Pytorch1.8GPU(CUDA11.1)的實(shí)現(xiàn)

    Linux安裝Pytorch1.8GPU(CUDA11.1)的實(shí)現(xiàn)

    這篇文章主要介紹了Linux安裝Pytorch1.8GPU(CUDA11.1)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • python 統(tǒng)計(jì)list中各個(gè)元素出現(xiàn)的次數(shù)的幾種方法

    python 統(tǒng)計(jì)list中各個(gè)元素出現(xiàn)的次數(shù)的幾種方法

    這篇文章主要介紹了python 統(tǒng)計(jì)list中各個(gè)元素出現(xiàn)的次數(shù)的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Python中zipfile壓縮包模塊的使用

    Python中zipfile壓縮包模塊的使用

    zipfile 模塊提供了創(chuàng)建、讀取、寫入、添加及列出 ZIP 文件的工具,本文主要介紹了Python中zipfile壓縮包模塊的使用,感興趣的可以了解一下
    2021-05-05
  • 詳解Python中的自定義密碼驗(yàn)證

    詳解Python中的自定義密碼驗(yàn)證

    這篇文章主要為大家介紹了如何實(shí)現(xiàn)在Python中的自定義密碼驗(yàn)證,并對密碼驗(yàn)證功能進(jìn)行單元測試。文中的示例代碼講解詳細(xì),需要的可以參考一下
    2022-02-02

最新評論