前言
本文的文字及圖片來源于網路,僅供學習、交流使用,不具有任何商業用途,如有問題請及時聯系我們以作處理,
很多人學習python,不知道從何學起,
很多人學習python,掌握了基本語法過后,不知道在哪里尋找案例上手,
很多已經做案例的人,卻不知道如何去學習更加高深的知識,
那么針對這三類人,我給大家提供一個好的學習平臺,免費領取視頻教程,電子書籍,以及課程的源代碼!??¤
QQ群:961562169
selenium
Selenium 是一個 Web 的自動化測驗工具,最初是為網站自動化測驗而開發的,就像玩游戲用的按鍵精靈,可以按指定的命令自動操作,
Selenium 測驗工具直接操控瀏覽器中,就像真正的用戶在操作一樣,Selenium 可以根據的指令,讓瀏覽器自動加載頁面,獲取需要的資料,甚至頁面截屏,或者判斷網站上某些動作是否發生等,
模塊安裝
pip install selenium
谷歌驅動下載地址:
https://npm.taobao.org/mirrors/chromedriver/
http://chromedriver.storage.googleapis.com/index.html
配置瀏覽器驅動:
將下載好的瀏覽器驅動解壓,將解壓出的 exe 檔案放到Python的安裝目錄下,也就是和python.exe同目錄即可,
或者
把驅動和代碼放在同一個路徑里面~
確定目標網頁

?
Selenium 就是模擬人的行為去操作~ 按照流程~
爬取內容:
- 商品價格
- 商品名字
- 銷量
- 店鋪名字
- 發貨地
1、獲取搜索框元素,輸入想要搜索的內容 這里咱們呢搜索女士包包的關鍵詞
driver.find_element_by_css_selector('#q').send_keys('女式包包')
2、獲取搜索按鈕元素,點擊搜索
driver.find_element_by_css_selector('.search-button').click()
3、會彈出登陸頁面
- 方案一:
- 獲取賬號和密碼元素,用代碼輸入~ 合理設定好延時,并不會出現驗證碼~ - 方案二:
- 獲取支付寶登陸元素,點擊手動掃碼登陸
?
這邊選擇方案二,方案一是可行的,但是會賬號密碼,所以這個你們可以自己去嘗試
driver.find_element_by_css_selector('#login-form > div.login-blocks.sns-login-links > a.alipay-login').click()
4、獲取商品串列頁資料
?
和普通爬蟲決議網站資料一樣的~獲取串列頁標簽,然后再二次提取,
這里創建一個字典,接收資料,方便等會保存到csv檔案,
lis = driver.find_elements_by_css_selector('#mainsrp-itemlist .item')
dit = {}
for li in lis:
time.sleep(1)
price = li.find_element_by_css_selector('.ctx-box .price strong').text + '元' # 商品價格
dit['商品價格'] = price
deal = li.find_element_by_css_selector('.ctx-box .deal-cnt').text # 成交量
dit['成交量'] = deal
row = li.find_element_by_css_selector('.ctx-box .row-2 a').text # 商品名字
dit['商品名字'] = row
shop = li.find_element_by_css_selector('.shop > a > span:nth-child(2)').text # 店鋪名字
dit['店鋪名字'] = shop
city = li.find_element_by_css_selector('.row-3 > div.location').text # 發貨地址
dit['發貨地址'] = city
5、保存資料
最后一步就是保存資料了,基本操作了
f = open('淘寶資料.csv', mode='a', encoding='utf-8-sig', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['商品價格', '成交量', '商品名字', '店鋪名字', '發貨地址'])
csv_writer.writeheader()
csv_writer.writerow(dit)
6、翻頁點擊下一頁
def next_page():
driver.find_element_by_css_selector('#mainsrp-pager > div > div > div > ul > li.item.next > a').click()
driver.implicitly_wait(10)
7、運行效果圖
?

?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/173122.html
標籤:Python
