直接入正題---Python selenium自動控制瀏覽器對網頁的數據進行抓取,其中包含按鈕點擊、跳轉頁面、搜索框的輸入、頁面的價值數據存儲、mongodb自動id標識等等等。
1、首先介紹一下 Python selenium ---自動化測試工具,用來控制瀏覽器來對網頁的操作,在爬蟲中與BeautifulSoup結合那就是天衣無縫,除去國外的一些變態的驗證網頁,對于圖片驗證碼我有自己寫的破解圖片驗證碼的源代碼,成功率在85%。
詳情請咨詢QQ群--607021567(這不算廣告,群里有好多Python的資源分享,還有大數據的一些知識【hadoop】)
2、beautifulsoup就不需要詳細的介紹了,直接上網址::https://www.crummy.com/software/BeautifulSoup/bs4/doc/(BeautifulSoup的官方文檔)
3、關于mongodb的自動id的生成。mongodb中所有的存儲數據都是有固定的id的,但是mongodb的id對于人類來講是復雜的,對于機器來講是小菜一碟的,所以在存入數據的同時,我習慣用新id來對每一條數據的負責!
在Python中使用mongodb的話需要引進模塊 from pymongo import MongoClient,ASCENDING, DESCENDING ,該模塊就是你的責任!
接下來開始講程序,直接上實例(一步一步來):
引入模塊:
from selenium import webdriverfrom bs4 import BeautifulSoupimport requestsfrom pymongo import MongoClient,ASCENDING, DESCENDINGimport timeimport re
其中的每一個模塊都會說已經解釋過了,其中的re、requests都是之前就有提過的,他們都是核心缺一不可!
首先,我舉一個小例子,淘寶的自動模擬搜索功能(源碼):
先說一下selenium 的定位方法
find_element_by_idfind_element_by_namefind_element_by_xpathfind_element_by_link_textfind_element_by_partial_link_textfind_element_by_tag_namefind_element_by_class_namefind_element_by_css_selector
源碼:
from selenium import webdriverfrom bs4 import BeautifulSoupimport requestsfrom pymongo import MongoClient,ASCENDING, DESCENDINGimport timeimport redef TaoBao(): try: Taobaourl = 'https://www.taobao.com/' driver = webdriver.Chrome() driver.get(Taobaourl) time.sleep(5)#通常這里需要停頓,不然你的程序很有可能被檢測到是Spider text='Strong Man'#輸入的內容 driver.find_element_by_xpath('//input[@class="search-combobox-input"]').send_keys(text).click() driver.find_element_by_xpath('//button[@class="btn-search tb-bg"]').click() driver.quit() except Exception,e: print eif __name__ == '__main__': TaoBao()效果的實現,你們可以直接復制后直接運行!我只用了xpath的這個方法,因為它最實在!橙色字體(如果我沒有色盲的話),就是網頁中定位的元素,可以找到的!
接下來就是與BeautifulSoup的結合了,但是我們看到的只是打開了網頁,并沒有源碼,那么就需要 “變量名.page_source”這個方法,他會實現你的夢想,你懂得?
新聞熱點
疑難解答