博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
day6
阅读量:4627 次
发布时间:2019-06-09

本文共 6194 字,大约阅读时间需要 20 分钟。

# 今日内容: # 注意:selenium驱动的浏览器是干净的,没有任何缓存 #     1、 # # # # # from selenium import webdriver # # driver = webdriver.Chrome(r'D:\BaiduNetdisk\BaiduNetdiskDownload\chromedriver.exe') # # # try: #     driver.implicitly_wait(5) # #     driver.get('https://www.baidu.com/') # # # #     a=driver.find_element_by_xpath('//a') #     print(a.tag_name) # # finally: #     driver.close() # # from selenium import webdriver # from selenium.webdriver import ActionChains # import time # # driver = webdriver.Chrome(r'D:\BaiduNetdisk\BaiduNetdiskDownload\chromedriver.exe') # driver.implicitly_wait(10) # driver.get('http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable') # # try: # #     # driver.switch_to_frame('iframeResult') #     # 切换到id为iframeResult的窗口内 #     driver.switch_to.frame('iframeResult') # #     # 源位置 #     draggable = driver.find_element_by_id('draggable') # #     # 目标位置 #     droppable = driver.find_element_by_id('droppable') # #     # 调用ActionChains,必须把驱动对象传进去 #     # 得到一个动作链对象,复制给一个变量 #     actions = ActionChains(driver) # #     # 方式一: 机器人 #     # 瞬间把源图片位置秒移到目标图片位置 #     actions.drag_and_drop(draggable, droppable)  # 编写一个行为 #     actions.perform()  # 执行编写好的行为 # # #     # 方式二: 模拟人的行为 #     # source = draggable.location['x'] #     # target = droppable.location['x'] #     # print(source, target) #     # #     # distance = target - source #     # print(distance) # #     # perform:每个动作都要调用perform执行 # #     # 点击并摁住源图片 #     # ActionChains(driver).click_and_hold(draggable).perform() #     # #     # s = 0 #     # while s < distance: #     #     # 执行位移操作 #     #     ActionChains(driver).move_by_offset(xoffset=2, yoffset=0).perform() #     #     s += 2 #     # #     # # 释放动作链 #     # ActionChains(driver).release().perform() #     # #     # time.sleep(10) # # # finally: #     driver.close() # ''' # 前进、后退 # ''' # from selenium import webdriver # import time # # driver = webdriver.Chrome() # # # try: #     driver.implicitly_wait(10) #     driver.get('https://www.jd.com/') #     driver.get('https://www.baidu.com/') #     driver.get('https://www.cnblogs.com/') # #     time.sleep(2) # #     # 回退操作 #     driver.back() #     time.sleep(1) #     # 前进操作 #     driver.forward() #     time.sleep(1) #     driver.back() #     time.sleep(10) # # finally: #     driver.close() from selenium import webdriver from selenium.webdriver import ChromeOptions import time r''' 步骤:     1、打开文件的查看,显示隐藏文件     2、找到C:\Users\administortra\AppData\Local\Google\Chrome\User Data         删除Default文件     3、重新打开浏览器,并登陆百度账号         - 此时会创建一个新的Default缓存文件 ''' # 获取options对象,参数对象 # options = ChromeOptions() # # # 获取cookies保存路径 # # 'C:\Users\administortra\AppData\Local\Google\Chrome\User Data' # profile_directory = r'--user-data-dir=C:\Users\administortra\AppData\Local\Google\Chrome\User Data' # # # 添加用户信息目录 # options.add_argument(profile_directory) # # # 把参数加载到当前驱动中  chrome_options默认参数,用来接收options对象 # driver = webdriver.Chrome(chrome_options=options) # # try: #     driver.implicitly_wait(10) #     driver.get('https://www.baidu.com/') #     ''' #     BDUSS:***** #     ''' #     # 添加用户cookies信息 #     # name、value必须小写 #     driver.add_cookie({"name": "BDUSS", "value": "用户session字符串"}) # #     # 刷新操作 #     driver.refresh() # #     time.sleep(10) # # finally: #     driver.close() # from selenium import webdriver # from selenium.webdriver.common.keys import Keys # import time # # # driver = webdriver.Chrome(r'D:\BaiduNetdisk\BaiduNetdiskDownload\chromedriver.exe') # try: #     driver.implicitly_wait(10) #     driver.get('https://www.jd.com/') # #     input_tag=driver.find_element_by_id('key') #     input_tag.send_keys('剃须刀') #     input_tag.send_keys(Keys.ENTER) #     good_list=driver.find_elements_by_class_name('gl-item') #     for good in good_list: #         good_url=good.find_element_by_css_selector( #         '.p-img a').get_attribute('href') #         good_content=f''' #         shangpinlianije:{good_url} #         ''' #         print(good_content) #         with open('tixudao.txt','a',encoding='utf-8')as f: #             f.write(good_content) #     time.sleep(10) # finally: #     driver.close() from selenium import webdriver from selenium.webdriver.common.keys import Keys import time def get_good(driver):     try:         # 通过JS控制滚轮滑动获取所有商品信息         js_code = '''             window.scrollTo(0,5000);         '''         driver.execute_script(js_code)  # 执行js代码         # 等待数据加载         time.sleep(2)         # 3、查找所有商品div         # good_div = driver.find_element_by_id('J_goodsList')         good_list = driver.find_elements_by_class_name('gl-item')         n = 1         for good in good_list:             # 根据属性选择器查找             # 商品链接             good_url = good.find_element_by_css_selector(                 '.p-img a').get_attribute('href')             # 商品名称             good_name = good.find_element_by_css_selector(                 '.p-name em').text.replace("\n", "--")             # 商品价格             good_price = good.find_element_by_class_name(                 'p-price').text.replace("\n", ":")             # 评价人数             good_commit = good.find_element_by_class_name(                 'p-commit').text.replace("\n", " ")             good_content = f'''                         商品链接: {good_url}                         商品名称: {good_name}                         商品价格: {good_price}                         评价人数: {good_commit}                         \n                         '''             print(good_content)             with open('jd.txt', 'a', encoding='utf-8') as f:                 f.write(good_content)         next_tag = driver.find_element_by_class_name('pn-next')         next_tag.click()         time.sleep(2)         # 递归调用函数         get_good(driver)         time.sleep(10)     finally:         driver.close() if __name__ == '__main__':     good_name = input('请输入爬取商品信息:').strip()     driver = webdriver.Chrome()     driver.implicitly_wait(10)     # 1、往京东主页发送请求     driver.get('https://www.jd.com/')     # 2、输入商品名称,并回车搜索     input_tag = driver.find_element_by_id('key')     input_tag.send_keys(good_name)     input_tag.send_keys(Keys.ENTER)     time.sleep(2)     get_good(driver)

转载于:https://www.cnblogs.com/djunblog/p/11048099.html

你可能感兴趣的文章
iOS常用第三方库 -转
查看>>
Android布局学习
查看>>
python的沙盒环境--virtualenv
查看>>
软件自动化测试——入门、进阶与实战
查看>>
BZOJ1878 [SDOI2009]HH的项链 树状数组 或 莫队
查看>>
BZOJ3675 [Apio2014]序列分割 动态规划 斜率优化
查看>>
2016.10.24 继续学习
查看>>
产品功能对标 - 服务授权管理
查看>>
各地IT薪资待遇讨论
查看>>
splay入门
查看>>
带CookieContainer进行post
查看>>
C语言学习笔记--字符串
查看>>
Java的内部类真的那么难以理解?
查看>>
一文搞懂Java环境,轻松实现Hello World!
查看>>
也谈智能手机游戏开发中的分辨率自适应问题
查看>>
关于 IOS 发布的点点滴滴记录(一)
查看>>
vue+element-ui实现表格checkbox单选
查看>>
Chapter 4 Syntax Analysis
查看>>
Xcode10 library not found for -lstdc++ 找不到问题
查看>>
Mysql 8.0.13如何重置密码
查看>>