python3[爬蟲實戰] 使用selenium,xpath爬取京東手機(上)
阿新 • • 發佈:2019-01-04
當然了,這個任務也是從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上了。