python3[爬虫实战] 使用selenium,xpath爬取京东手机
2024-08-29 07:33:36
使用selenium ,可能感觉用的并不是很深刻吧,可能是用scrapy用多了的缘故吧。不过selenium确实强大,很多反爬虫的都可以用selenium来解决掉吧。
思路:
入口:
关键字搜索入口
这里使用的Chrome 浏览器,方便能看到信息是否录入正确,
这里,我们首先找到输入框,然后填上 zuk z2 手机 然后再找到 搜索按钮,选中点击后, 然后再找到zuk z2手机(蓝色的字体)
这样子点完之后,我们就会出现第一页的那个图片,显示的手机商品信息
这样子我们就把整个逻辑走完了,剩下的就交给代码了,里面的注释还算详细。
# -*- coding: utf-8 -*- import re import time from selenium import webdriver import os from lxml import etree #如果没有配置chromedriver.exe的环境变量,要写完整路径 # chromedriver = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe" chromedriver = "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: # 通过xpath获取商品链接 verlink = link.xpath("./li[@class='gl-item']/div[@class='gl-i-wrap']/div[@class='p-img']/a/@href") #通过xpath获取商品价格 price = link.xpath("./li[@class='gl-item']/div[@class='gl-i-wrap']/div[@class='p-price']/strong") print(price) print(verlink) print(len(links))
这里控制台打印了一下链接信息(需求如此):
最新文章
- 前端工具HBuilder安装Sass插件
- 网站禁止右键点击js
- codeforces B. Strongly Connected City(dfs水过)
- 【CODEVS 3287】【NOIP2013】火车运输
- uboot在nandflash和norflash是如何运行的
- 读取app.config配置文件信息
- LINUX防火墙firewall、iptables
- 匿名方法和Lambda表达式
- 终端字形logo
- 使用PHP、MySQL实现修改密码 + 防止通过url强行进入系统
- apache 访问权限出错,apache selinux 权限问题, (13) Permission Denied
- Flink(三)Flink开发IDEA环境搭建与测试
- Android Studio 插件-Android Styler 的使用 (转)
- shell中参数的传递
- Mysql缓存中innodb_buffer_pool与Qcache的区别
- MapReduce的分区
- Android弹出Dialog使用举例
- C++中的常量定义
- 汉诺塔python实现
- js异步处理工作机制(setTimeout, setInterval)