1. 程式人生 > >python3[爬蟲實戰] 使用selenium,xpath爬取京東手機(上)

python3[爬蟲實戰] 使用selenium,xpath爬取京東手機(上)

當然了,這個任務也是從QQ群裡面接過來的,主要是想提升自己的技術,一接過來是很開心的,但是,接完之後,寫了又寫,昨晚寫了3小時,前提晚上寫了2小時,搞的有些晚了,搞來搞去就卡在一個地方了,希望懂的大神們多幫忙指點一下,

使用selenium ,可能感覺用的並不是很深刻吧,可能是用scrapy用多了的緣故吧。不過selenium確實強大,很多反爬蟲的都可以用selenium來解決掉吧。

好了,扯得蛋好疼,開始下文吧,首先,我們爬取的內容:

京東手機

沒錯,我們爬取的就是這些資料,當然就是指定這款手機了。包括手機的價格,手機的連結,當然了, 手機標題文字,什麼的也都可以進行爬取,這裡主要講的是使用selenium 爬取京東上的手機商品資訊

思路:

入口:
關鍵字搜尋入口

這裡使用的Chrome 瀏覽器,方便能看到資訊是否錄入正確,
這裡,我們首先找到輸入框,然後填上 zuk z2 手機 然後再找到 搜尋按鈕,選中點選後, 然後再找到zuk z2手機(藍色的字型)

這樣子點完之後,我們就會出現第一頁的那個圖片,顯示的手機商品資訊

這樣子我們就把整個邏輯走完了,剩下的就交給程式碼了,裡面的註釋還算詳細。

# -*- coding: utf-8 -*-
# @Time    : 2017/9/18 19:52
# @Author  : 蛇崽
# @Email   : [email protected]
# @File    : TaoBaoZUK1.py  聯想zuk z1 手機評論資訊爬取
import re import time from selenium import webdriver import os from lxml import etree chromedriver = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe" browser = webdriver.Chrome(chromedriver) url = "https://www.jd.com/" browser.get(url) time.sleep(5) #手機號登入 phoneLogin = browser.find_element_by_xpath('//*[@id="key"]'
) phoneLogin.send_keys('ZUK Z2手機') time.sleep(3) # 搜尋 btnNext = browser.find_element_by_xpath('//*[@id="search"]/div/div[2]/button') btnNext.click() # 找到手機一欄 time.sleep(3) btnPhone = browser.find_element_by_xpath('//*[@id="J_searchWrap"]/div[2]/a') btnPhone.click() page = browser.page_source html = etree.HTML(page) links = html.xpath("//*[@id='J_goodsList']/ul[@class='gl-warp clearfix']") print('links',links) for link in links: verlink = link.xpath("./li[@class='gl-item']/div[@class='gl-i-wrap']/div[@class='p-img']/a/@href") price = link.xpath("./li[@class='gl-item']/div[@class='gl-i-wrap']/div[@class='p-price']/strong/text()") print(price) print(verlink) print(len(links))

這裡控制檯列印了一下連結資訊(需求如此):

連結資訊

整個爬蟲過程就完了, 這些算簡單的新手爬京東商品資訊的demo,喜歡的可以點個贊。
專案已上傳到github上了。