发布于2019-08-05 18:01 阅读(381) 评论(0) 点赞(1) 收藏(0)
selenium是一个优秀的自动化测试工具,支持多种语言,具体介绍参考官方文档:https://www.seleniumhq.org/docs/。
下面我们使用selenium工具模拟用户点击商品详情页,在详情页中获取商品预览图。
pip install selenium
python >> from selenium import webdriver >> browser = webdriver.Chrome()
若没有报错,则可进行后面的步骤。若有错误提示未找到chromedriver,需要下载chromedriver
下载与本地浏览器版本相同的chromedriver,下载后,需将该驱动包放入PATH中,我的浏览器版本 75.0.3770.142
wget http://npm.taobao.org/mirrors/chromedriver/74.0.3729.6/chromedriver_linux64.zip tar zxvf chromedriver_linux64.zip cd chromedriver_linux64 export PATH=$PATH:~/Downloads/chromedriver_linux64
url = "http://www.baidu.com" browser = webdriver.Chrome() browser.get(url) ele = browser.find_element_by_class_name('') print(ele) 其中,find_element_by_class_name根据标签class样式来获取元素,类似的方法还有很多,比如: find_element_by_id find_element_by_xpath find_element_by_tag_name ....
下面我们以抓取www.layuva.com中商品信息为例,该站点的商品详情页链接是动态生成的,现在很多站点内容都是动态生成,这类站点很适合selenium工具抓取数据。具体demo参见附件
1、新建driver实例 url = "https://www.layuva.com/pc/index.html#/home/searchDetail?category_id=1060730203664142336" browser = webdriver.Chrome() browser.get(url) 2、获取商品列表 list_box = browser.find_elements_by_xpath('//*[@id="app"]//div[5]/div[2]/div/div')
3、模拟用户查看商品详情 for box in list_box: box.click() browser.switch_to.window(browser.window_handles[-1])
4、获取详情页中的商品信息 image_src = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="app"]/div[5]/div/div[1]/div[1]/img'))).get_attribute('data-src') 5、退出详情页 browser.close() browser.switch_to.window(browser.window_handles[0])
6、获取下一页 target = browser.find_element_by_css_selector( '#app > div.searchDetail > div.width-base > div.common-page > ul > li.ivu-page-next') if target.get_attribute('class').find('ivu-page-disabled') >= 0: // 判断是否有下一页 break ActionChains(browser).move_to_element(target).click(target).perform() # 模拟点击《下一页》按钮
欢迎拍砖
作者:搞笑
链接:https://www.pythonheidong.com/blog/article/6072/010f429c50e6c07780df/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!