使用webdriver爬取上交所資料

2021-09-30 20:57:54 字數 2519 閱讀 4491

工作中經常需要採集一些**上的表資料,之前都是手工一條一條記錄。學完python總感覺用的太少,於是想到不妨用python做個小爬蟲去爬取。

# 儲存編號

table_num_array = browser.find_elements_by_xpath('//td[@class="td_no_break text-align-center"]')

# 儲存名稱

table_name_array = browser.find_elements_by_xpath('//td[@class="td_break_word_7 "]')

# 儲存狀態

table_status_array = browser.find_elements_by_xpath('//td[@class="td_break_word_2 "]')

# 儲存地區

table_area_array = browser.find_elements_by_xpath('//td[@class="td_no_break pd_style "]')

# 儲存行業

table_industry_array = browser.find_elements_by_xpath('//td[@class="td_break_word_3 "]')

# 儲存發行商

table_stockbroker_array = browser.find_elements_by_xpath('//td[@class="td_break_word_9 "]')

# 儲存律所

table_law_firm_array = browser.find_elements_by_xpath('//td[@class="td_break_word_8 "]')

# 儲存會計師事務所

table_cpa_array = browser.find_elements_by_xpath('//td[@class="td_break_word "]')

# 儲存日期

table_date_array = browser.find_elements_by_xpath('//td[@class="td_no_break "]')

接下來就是將爬取到的資料寫入到檔案當中了。

output = ' '.join(list(s)).encode('utf-8')

print output

f.write(output+'\n')

# 獲取需要翻頁的頁數

def get_pages():

page_no_array = browser.find_elements_by_xpath('//a[@class="datalist1_container_paginationnumlink"]')

return len(page_no_array)

最後,寫乙個main函式將**整合

if __name__ == '__main__':

pages = get_pages()

f = open(file_name, 'wb')

get_page()

for k in range(pages):

browser.find_element_by_xpath('//a[@class="paging_next"]').click()

get_page()

f.close()

browser.quit()

最後說一下遇到的問題:

1、獲取**資料文字時,部分文字存在換行,去掉換行試錯了很久,最後發現只能使用replace函式而無法使用strip函式去掉換行。這點以後要注意!

for i in range(len(table_num_array)):

# 此處用replace函式去掉帶

換行,不能用strip()函式

s = table_num_array[i].text, table_name_array[i].text.replace('\n', ''), table_status_array[i].text.replace('\n',

''), \

table_area_array[i].text.replace('\n', ''), table_industry_array[i].text.replace('\n', ''), table_stockbroker_array[

i].text.replace('\n', ''), table_law_firm_array[i].text.replace('\n', ''), table_cpa_array[i].text.replace('\n',

''), \

table_date_array[2 * i].text, table_date_array[2 * i + 1].text

output = ' '.join(list(s)).encode('utf-8')

print output

f.write(output+'\n')

特此記錄下此過程,以便以後跟蹤學習進度。

使用nodejs爬取資料

let requests require requests 傳送http請求 具體詳情 let fs require fs 檔案系統 具體詳情 let path require path 路徑 新增鏈結描述 const cheerio require cheerio 在nodejs中類似jq的 符號...

如何使用python爬取資料

在爬取資料之前首先使用 pip install requests 命令 import requests base url 此處為你所要爬取資料的 header 此處為偽裝成瀏覽器 res requests.get base url,headers header 傳送請求並返回包含相應的html檔案內...

使用多執行緒爬取資料

應用名稱 應用鏈結 import requests import time from multiprocessing import queue from threading import thread import json import urllib.parse class xiaomispide...