selenium實戰指令碼集(2) 簡單的知乎爬蟲

2021-09-06 22:21:24 字數 1911 閱讀 6275

很多同學在工作中是沒有selenium的實戰環境的,因此自學的同學會感到有力無處使,想學習但又不知道怎麼練習。其實學習新東西的道理都是想通的,那就是反覆練習。這裡乙醇會給出一些有用的,也富有挑戰的練習,幫助大家去快速掌握和使用selenium webdriver。多用才會有感觸。

到這個頁面,用selenium獲取今日最熱本月最熱的文章標題和內容

#ecoding: utf-8

"""從zhihu.com獲取每日最熱和每月最熱

"""from selenium import webdriver

from datetime import date

import sys

reload(sys)

sys.setdefaultencoding("utf-8")

class zhihu:

def __init__(self):

self.daily_url = ''

self.monthly_url = ''

def __enter__(self):

self.dr = webdriver.firefox()

return self

def __exit__(self, p1, p2, p3):

self.dr.quit()

def get_daily_hots(self):

result =

hots_urls = self.get_daily_hots_urls()

for url in hots_urls:

return result

def get_answer(self, url):

self.dr.get(url)

# wrap_div = self.dr.find_element_by_css_selector('.zm-item-answer.zm-item-expanded')

article = {}

article['question'] = self.dr.find_element_by_css_selector('#zh-question-title').text

article['author'] = self.dr.find_element_by_css_selector('.author-link').text

article['answer'] = self.dr.find_element_by_css_selector('.zm-editable-content.clearfix').get_attribute('innerhtml')

return article

def get_monthly_hots(self):

pass

def get_daily_hots_urls(self):

self.dr.get(self.daily_url)

wrap_div = self.dr.find_element_by_class_name('tab-panel')

title_url_elements = wrap_div.find_elements_by_class_name('question_link')

assert len(title_url_elements) == 5

urls =

for title in title_url_elements:

return urls

if __name__ == '__main__':

with zhihu() as zhihu:

articles = zhihu.get_daily_hots()

pass

試著自己補充完成get_monthly_hots()方法,注意**的重用性

Selenium2自動化測試實戰序言

記得很久之前接觸自動化的時候看了一本關於某早期自動化測試工具的書,書名已經記不得了,內容卻一直印象深刻。因為那本書根本就是把官方文件有選擇性的翻譯一遍,對於實際應用來說其作用幾乎是零。因此從那時候起我就一直認為,對工具的介紹應該不僅僅停留在理論和了解的程度,如果沒有實戰,那麼我們之於工具無非就是葉公...

Selenium2自動化測試實戰序言

記得很久之前接觸自動化的時候看了一本關於某早期自動化測試工具的書,書名已經記不得了,內容卻一直印象深刻。因為那本書根本就是把官方文件有選擇性的翻譯一遍,對於實際應用來說其作用幾乎是零。因此從那時候起我就一直認為,對工具的介紹應該不僅僅停留在理論和了解的程度,如果沒有實戰,那麼我們之於工具無非就是葉公...

React簡書開發實戰課程筆記 2

一 使用 react transition group 擴充套件,實現css動畫 二 ant design框架初體驗 三 redux 具體 實現 src目錄下原有乙個index.js專案入口檔案檔案,和乙個todolist.js元件檔案 在src目錄下建立store資料夾,然後在store資料夾中建...