99久久精品国产片-99久久精品国产免费-99久久精品国产麻豆-99久久精品国产国产毛片-99久久精品国产高清一区二区-99久久精品费精品国产一区二区

selenium處理網頁下拉加載數據爬取并存入excel

2019-7-17    seo達人

如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

前言
之前有個同學詢問我是否能夠爬取知乎的全部回答,當初只會Scrapy無法實現下拉的數據全部加載。后來在意外中接觸了selenium的自動化測試,看出了selenium的模擬能力的強大,而昨天有個同學問我能否爬取中國工商銀行遠程銀行的精彩回答,我說可以試試。

思路
selenium模擬下拉直至底部
然后通過selenium獲取數據集合
通過pandas寫入excel
selenium模擬下拉直至底部
此處全靠一位大佬的博客點撥,實在不好意思的是,selenium就看了下常用的api,實在不懂如何判斷是否加載完畢,而該博客代碼的原理也好理解,通過不斷下拉判斷與上一次高度進行對比,知道前端頁面的滾動高度屬性就懂了,當然思想最重要。
見代碼:

#將滾動條移動到頁面的底部
all_window_height =  []  # 創建一個列表,用于記錄每一次拖動滾動條后頁面的最大高度
all_window_height.append(self.driver.execute_script("return document.body.scrollHeight;")) #當前頁面的最大高度加入列表
while True:
self.driver.execute_script("scroll(0,100000)") # 執行拖動滾動條操作
time.sleep(3)
check_height = self.driver.execute_script("return document.body.scrollHeight;")
if check_height == all_window_height[-1]:  #判斷拖動滾動條后的最大高度與上一次的最大高度的大小,相等表明到了最底部
print("我已下拉完畢")
break
else:
all_window_height.append(check_height) #如果不想等,將當前頁面最大高度加入列表。
print("我正在下拉")

然后通過selenium獲取數據集合
通過find_elements_by_css_selector方法獲取元素對象列表,然后通過遍歷列表獲取單個對象,通過對象的text屬性獲取數據。
代碼與"通過pandas寫入excel"代碼想結合。

通過pandas寫入excel
example.xlsx

批量將數據依次寫入excel,此處個人知道有兩種寫法,推薦后者。
寫法一:

problem = cls.driver.find_elements_by_css_selector("li h2.item-title a")
data = pd.read_excel('example.xlsx', sheet_name = 'Sheet1')
problemtext = []
for i in problem:
problemtext .append(i.text)
replytext = []
reply = cls.driver.find_elements_by_css_selector("div.item-right p")
for j in reply:
    replytext.append(j.text)
    data.loc[row,'答案'] = j.text
data['問題'] = problemtext
data['答案'] = replytext

DataFrame(data).to_excel('test.xlsx', sheet_name='Sheet1')

寫法二:

problem = cls.driver.find_elements_by_css_selector("li h2.item-title a")
data = pd.read_excel('example.xlsx', sheet_name = 'Sheet1')
row = 1
for i in problem:
    data.loc[row,'問題'] = i.text
    row += 1
row = 1
reply = cls.driver.find_elements_by_css_selector("div.item-right p")
for j in reply:
    data.loc[row,'答案'] = j.text
    row += 1

DataFrame(data).to_excel('test.xlsx', sheet_name='Sheet1')

完整代碼
import pandas as pd
from pandas import DataFrame
import unittest
import time
from selenium import webdriver
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.select import Select
from selenium.webdriver.support.ui import WebDriverWait

class autoLogin(unittest.TestCase):

URL = 'http://zhidao.baidu.com/business/profile?id=87701'


@classmethod
def setUpClass(cls):
cls.driver = webdriver.Firefox()
cls.driver.implicitly_wait(20)
cls.driver.maximize_window()



def test_search_by_selenium(self):
self.driver.get(self.URL)
self.driver.title
time.sleep(1)
#將滾動條移動到頁面的底部
all_window_height =  []
all_window_height.append(self.driver.execute_script("return document.body.scrollHeight;"))
while True:
self.driver.execute_script("scroll(0,100000)") 
time.sleep(3)
check_height = self.driver.execute_script("return document.body.scrollHeight;")
if check_height == all_window_height[-1]:  
print("我已下拉完畢")
break
else:
all_window_height.append(check_height) 
print("我正在下拉")

@classmethod
def tearDownClass(cls):
html=cls.driver.page_source
problem = cls.driver.find_elements_by_css_selector("li h2.item-title a")
data = pd.read_excel('example.xlsx', sheet_name = 'Sheet1')
row = 1
for i in problem:
    data.loc[row,'問題'] = i.text
    row += 1
row = 1
reply = cls.driver.find_elements_by_css_selector("div.item-right p")
for j in reply:
    data.loc[row,'答案'] = j.text
    row += 1
    
DataFrame(data).to_excel('test.xlsx', sheet_name='Sheet1')

#保存成網頁
with open("index.html", "wb") as f:
f.write(html.encode())
f.close()
cls.driver.quit()

if __name__ == '__main__':
unittest.main(verbosity=2)

text.xlsx


總結
在使用Scrapy爬蟲時,可以通過selenium來執行網頁中的一些js腳本,但是如何將二者結合起來,以及各種框架之間的靈活運用,都將是我需要面對的。
--------------------- 
藍藍設計www.lapeinture.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、網站建設 平面設計服務

日歷

鏈接

個人資料

藍藍設計的小編 http://www.lapeinture.cn

存檔

国产成a人片在线观看视频| 天天做日日爱夜夜爽| 国产一区二区精品| 亚洲女人国产香蕉久久精品| 尤物视频网站在线观看| 日韩av成人| 91麻豆精品国产高清在线| 日本免费区| 天天做人人爱夜夜爽2020毛片| 成人免费观看网欧美片| 亚洲第一页乱| 国产激情一区二区三区| 四虎久久影院| 亚洲wwwwww| 美女免费精品高清毛片在线视| 亚洲www美色| 日韩在线观看视频免费| 美女免费精品高清毛片在线视| 欧美a免费| 欧美a级片视频| 四虎影视久久久| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产精品12| 成人影院一区二区三区| 中文字幕97| 国产成人精品一区二区视频| 国产网站免费视频| 午夜激情视频在线观看| 黄色免费三级| 免费一级生活片| 亚飞与亚基在线观看| 九九干| 91麻豆国产福利精品| 亚洲精品中文一区不卡| 国产伦久视频免费观看视频| 999精品视频在线| 免费一级片网站| 国产a网| 久久成人性色生活片| 久久精品欧美一区二区| 国产91素人搭讪系列天堂| 亚久久伊人精品青青草原2020| 国产网站在线| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 亚洲第一视频在线播放| 欧美国产日韩精品| 日韩专区亚洲综合久久| 九九久久国产精品大片| 国产不卡在线看| 国产一区二区精品| 毛片的网站| 国产精品1024永久免费视频| 四虎影视久久久免费| 九九九网站| 在线观看成人网| 欧美另类videosbestsex久久| 精品视频免费观看| 精品国产香蕉在线播出| 精品视频一区二区三区免费| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 亚洲wwwwww| 日韩专区亚洲综合久久| 精品在线视频播放| 久久国产一区二区| 久久99这里只有精品国产| 久久99这里只有精品国产| 日韩中文字幕在线播放| 美女免费精品高清毛片在线视| 欧美另类videosbestsex高清| 欧美1卡一卡二卡三新区| 久久99中文字幕久久| 美女免费精品视频在线观看| 国产精品自拍在线| 欧美电影免费看大全| 欧美一区二区三区在线观看| 国产国语在线播放视频| 韩国毛片免费| 成人a大片在线观看| 成人影院一区二区三区| 国产网站免费视频| 欧美一区二区三区在线观看| 成人免费网站视频ww| 国产视频一区在线| 欧美激情一区二区三区中文字幕| 国产成人啪精品| 久久精品免视看国产明星| 国产网站免费观看| 久久国产精品自由自在| 日本免费乱人伦在线观看 | 999精品影视在线观看| 色综合久久天天综合| 香蕉视频久久| 精品视频一区二区三区免费| 国产视频一区二区三区四区| 一级毛片视频在线观看| 91麻豆精品国产自产在线| 久久99爰这里有精品国产| 午夜激情视频在线播放| 九九久久国产精品| 精品视频在线观看免费| 日韩avdvd| 高清一级毛片一本到免费观看| 欧美另类videosbestsex| 精品视频免费看| 91麻豆国产| 国产一级生活片| 青青青草视频在线观看| 99热精品在线| 99色视频| 国产网站免费视频| 欧美一区二区三区性| 99久久精品国产高清一区二区| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 精品视频免费在线| 亚欧成人毛片一区二区三区四区| 国产精品免费久久| 日韩欧美一及在线播放| 久久99中文字幕| 国产视频一区二区三区四区| 久久精品成人一区二区三区| 999精品影视在线观看| 天天做日日爱夜夜爽| 青青青草视频在线观看| 青青青草影院| 99色视频| 日韩在线观看视频黄| 成人免费网站视频ww| 91麻豆国产| 亚洲 国产精品 日韩| 欧美另类videosbestsex视频 | 免费一级生活片| 免费国产在线视频| 精品视频在线观看视频免费视频 | 亚洲天堂在线播放| 久久久成人网| 日韩在线观看免费完整版视频| 久久99爰这里有精品国产| 日韩中文字幕一区| 九九精品久久久久久久久| 欧美一级视频免费观看| 亚洲精品永久一区| 久久国产影院| 精品久久久久久影院免费| 色综合久久天天综合观看| 成人a级高清视频在线观看| 精品视频免费在线| 999精品在线| 欧美另类videosbestsex| 可以免费看毛片的网站| 精品国产一级毛片| 精品在线免费播放| 日韩专区亚洲综合久久| 日韩中文字幕在线亚洲一区| 精品视频免费在线| 国产一区二区福利久久| 日韩中文字幕一区| 午夜激情视频在线播放| 日本在线www| 国产欧美精品午夜在线播放| 欧美激情在线精品video| 一级女性大黄生活片免费| 成人免费一级毛片在线播放视频| 国产一区精品| 国产视频一区在线| 夜夜操网| 国产91精品系列在线观看| 欧美日本国产| 青草国产在线观看| 中文字幕97| 国产网站免费视频| 亚欧成人毛片一区二区三区四区| 香蕉视频亚洲一级| 精品国产一区二区三区国产馆| 91麻豆精品国产综合久久久| 欧美大片a一级毛片视频| 亚洲第一色在线| 韩国三级视频在线观看| 国产网站在线| 免费一级生活片| 黄色免费三级| 香蕉视频久久| 国产极品白嫩美女在线观看看| 精品视频免费观看| 欧美激情伊人| 国产国产人免费视频成69堂| 国产视频网站在线观看| 欧美激情中文字幕一区二区| 国产伦久视频免费观看视频| 欧美a级片免费看| 国产成人欧美一区二区三区的| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 四虎久久精品国产| 99色视频在线观看| 国产伦理精品| 中文字幕97| 亚洲精品中文一区不卡| 一级片片| 欧美激情一区二区三区视频 | 欧美激情一区二区三区中文字幕| 国产麻豆精品视频|