Python爬蟲開發【第1篇】【爬蟲案例】

來源:互聯網
上載者:User

標籤:tps   NPU   java   int   class   amp   key   返回   nim   

案例一:網站類比登入
# douban.pyfrom selenium import webdriverfrom selenium.webdriver.common.keys import Keysimport timedriver = webdriver.PhantomJS()driver.get("http://www.douban.com")# 輸入帳號密碼driver.find_element_by_name("form_email").send_keys("[email protected]")driver.find_element_by_name("form_password").send_keys("xxxxxxxx")# 類比點擊登入driver.find_element_by_xpath("//input[@class=‘bn-submit‘]").click()# 等待3秒time.sleep(3)# 產生登陸後快照driver.save_screenshot("douban.png")with open("douban.html", "w") as file:    file.write(driver.page_source)driver.quit()
案例二:動態網頁面類比點擊
#!/usr/bin/env python# -*- coding:utf-8 -*-# python的測試模組import unittestfrom selenium import webdriverfrom bs4 import BeautifulSoupclass douyuSelenium(unittest.TestCase):    # 初始化方法    def setUp(self):        self.driver = webdriver.PhantomJS()    #具體的測試案例方法,一定要以test開頭    def testDouyu(self):        self.driver.get(‘http://www.douyu.com/directory/all‘)        while True:            # 指定xml解析            soup = BeautifulSoup(driver.page_source, ‘xml‘)            # 返回當前頁面所有房間標題列表 和 觀眾人數列表            titles = soup.find_all(‘h3‘, {‘class‘: ‘ellipsis‘})            nums = soup.find_all(‘span‘, {‘class‘: ‘dy-num fr‘})            # 使用zip()函數來可以把列表合并,並建立一個元組對的列表[(1,2), (3,4)]            for title, num in zip(nums, titles):                print u"觀眾人數:" + num.get_text().strip(), u"\t房間標題: " + title.get_text().strip()            # page_source.find()未找到內容則返回-1            if driver.page_source.find(‘shark-pager-disable-next‘) != -1:                break            # 類比下一頁點擊            self.driver.find_element_by_class_name(‘shark-pager-next‘).click()    # 退出時的清理方法    def tearDown(self):        print ‘載入完成...‘        self.driver.quit()if __name__ == "__main__":    unittest.main()
案例三:執行 JavaScript 語句

1.隱藏百度圖片

from selenium import webdriverdriver = webdriver.PhantomJS()driver.get("https://www.baidu.com/")# 給搜尋輸入框標紅的javascript指令碼js = "var q=document.getElementById(\"kw\");q.style.border=\"2px solid red\";"# 調用給搜尋輸入框標紅js指令碼driver.execute_script(js)#查看頁面快照driver.save_screenshot("redbaidu.png")#js隱藏元素,將擷取的圖片元素隱藏img = driver.find_element_by_xpath("//*[@id=‘lg‘]/img")driver.execute_script(‘$(arguments[0]).fadeOut()‘,img)# 向下滾動到頁面底部driver.execute_script("$(‘.scroll_top‘).click(function(){$(‘html,body‘).animate({scrollTop: ‘0px‘}, 800);});")#查看頁面快照driver.save_screenshot("nullbaidu.png")driver.quit()

2.類比捲軸滾動到底部

from selenium import webdriverimport timedriver = webdriver.PhantomJS()driver.get("https://movie.douban.com/typerank?type_name=劇情&type=11&interval_id=100:90&action=")# 向下滾動10000像素js = "document.body.scrollTop=10000"#js="var q=document.documentElement.scrollTop=10000"time.sleep(3)#查看頁面快照driver.save_screenshot("douban.png")# 執行JS語句driver.execute_script(js)time.sleep(10)#查看頁面快照driver.save_screenshot("newdouban.png")driver.quit()

  

Python爬蟲開發【第1篇】【爬蟲案例】

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.