python3[爬虫实战] 使用selenium,xpath爬取京东手机(上)
程序员文章站
2024-02-26 13:06:52
...
当然了,这个任务也是从QQ群里面接过来的,主要是想提升自己的技术,一接过来是很开心的,但是,接完之后,写了又写,昨晚写了3小时,前提晚上写了2小时,搞的有些晚了,搞来搞去就卡在一个地方了,希望懂的大神们多帮忙指点一下,
使用selenium ,可能感觉用的并不是很深刻吧,可能是用scrapy用多了的缘故吧。不过selenium确实强大,很多反爬虫的都可以用selenium来解决掉吧。
好了,扯得蛋好疼,开始下文吧,首先,我们爬取的内容:
没错,我们爬取的就是这些数据,当然就是指定这款手机了。包括手机的价格,手机的链接,当然了, 手机标题文字,什么的也都可以进行爬取,这里主要讲的是使用selenium 爬取京东上的手机商品信息
思路:
入口:
这里使用的Chrome 浏览器,方便能看到信息是否录入正确,
这里,我们首先找到输入框,然后填上 zuk z2 手机 然后再找到 搜索按钮,选中点击后, 然后再找到zuk z2手机(蓝色的字体)
这样子点完之后,我们就会出现第一页的那个图片,显示的手机商品信息
这样子我们就把整个逻辑走完了,剩下的就交给代码了,里面的注释还算详细。
# -*- coding: utf-8 -*-
# @Time : 2017/9/18 19:52
# @Author : 蛇崽
# @Email : aaa@qq.com
# @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上了。