#爬取京东商品数据import timefrom selenium import webdriverfrom selenium.webdriver.common.keys import Keysdef get_good(driver):    num=1    try:        time.sleep(5)# 下拉滑动5000px        js_code='''            window.scrollTo(0,5000)        '''        driver.execute_script(js_code)        # 等待5秒,待商品数据加载        time.sleep(5)        good_list = driver.find_elements_by_class_name('gl-item')        for good in good_list:            # print(good)            # 商品名称            good_name = good.find_element_by_css_selector('.p-name em').text            # print(good_name)            good_url = good.find_element_by_css_selector('.p-name a').get_attribute('href')            # print(good_url)            good_price = good.find_element_by_class_name('p-price').text            # print(good_price)

            # 商品评价            good_commit = good.find_element_by_class_name('p-commit').text            good_content = f'''               商品名称:{good_name}               商品链接:{good_url}               商品价格:{good_price}               商品评价:{good_commit}               \n               '''            print(good_content)            with open('jd.txt', 'a', encoding='utf-8')as f:                f.write(good_content)            num+=1        print('商品信息写入成功!')        # 找到下一页并点击        next_tag=driver.find_element_by_class_name('pn-next')        next_tag.click()        time.sleep(5)        # 递归调用函数本身        get_good(driver)    finally:        driver.close()

if __name__=='__main__':    driver=webdriver.Chrome()    try:        driver.implicitly_wait(10)        # 往京东发送请求        driver.get('http://www.jd.com/')        # 往京东主页输入墨菲定律,按回车键        input_tag=driver.find_element_by_id('key')        input_tag.send_keys('墨菲定律')        input_tag.send_keys(Keys.ENTER)

        # 调取商品信息函数        get_good(driver)    finally:        driver.close()Beautifulsoup4的原理与使用
html_doc='''<html><head><title>The Dormouse's story</title></head><body><p class="sister"><b>$37</b></p>

<p class="story" id="p">Once upon a time there were three little sisters; and their names were<a href="http://example.com/elsie" class="sister" >Elsie</a>,<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;and they lived at the bottom of a well.</p>

<p class="story">...</p>'''from bs4 import BeautifulSoup# python自带的解析库# soup=BeautifulSoup(html_doc,'html.parser')

# 利用bs4得到一个soup对象soup=BeautifulSoup(html_doc,'lxml')# bs4对象# print(soup)# bs4类型# print(type(soup))# 美化功能# html=soup.prettify()# print(html)

# 1、直接选择标签(返回的是一个对象)   *****print(soup.a)  # 获取第一个a标签print(soup.p)  # 获取第一个p标签print(type(soup.a))  # <class 'bs4.element.Tag'>

# 2、获取标签的名称print(soup.a.name)  # 获取a标签的名字

# 3、获取标签的属性     *****print(soup.a.attrs)  # 获取a标签内所有的属性print(soup.a.attrs['href'])  # 获取a标签内的href属性

# 4、获取标签的文本内容   *****print(soup.p.text)      #  $37# 5、嵌套选择标签print(soup.p.b)  # 获取第一个p标签内的b标签print(soup.p.b.text)  # 打印b标签内的文本

# 6、子节点、子孙节点# 获取子节点print(soup.p.children)  # 获取第一个p标签所有的子节点,返回的是一个迭代器print(list(soup.p.children))  # list转成列表# 7、父节点,祖先节点print(soup.b.parent)print(soup.b.parents)print(list(soup.b.parents))

转载于:https://www.cnblogs.com/RuiZi/p/11130042.html

day 03 selenium与Beautifulsoup4的原理与使用相关推荐

  1. Selenium WebDriver的工作原理

    先通过一个简单的类比说个好理解的,这个比喻是我从美版知乎Quora上看到的,觉得比较形象.好理解拿来用用. 我们可以把WebDriver驱动浏览器类比成出租车司机开出租车. 在开出租车时有三个角色: ...

  2. can收发器 rx_CANOpen系列教程03 _CAN收发器功能、原理及作用

    1写在前面 前面文章是从大方向介绍了CAN网络,让大家对CAN网络有一定的认识.本文将范围缩小,讲述整个CAN网络其中的一个CAN收发器.如下图标记出来的部分: 本文结合众多初学者容易产生的疑问来讲述 ...

  3. 03、了解自动配置原理笔记

    1.SpringBoot特点 1.1.依赖管理 父项目做依赖管理 依赖管理 <parent><groupId>org.springframework.boot</grou ...

  4. selenium webdriver实现的原理及流程

    用Selenium实现自动化,主要需要三个东西: 1.自动化测试代码:自动化测试代码发送请求给浏览器的驱动(比如火狐驱动.谷歌驱动) 2.浏览器驱动:它来解析这些自动化测试的代码,解析后把它们发送给浏 ...

  5. 《微机原理及接口技术》第03章在线测试

    <微机原理及接口技术>第03章在线测试  <微机原理及接口技术>第03章在线测试 剩余时间: 59:53  答题须知:1.本卷满分20分.            2.答完题后, ...

  6. Selenium原理探秘

    Selenium是ThoughtWorks公司研发的一个强大的基于浏览器的开源自动化测试工具,它通常用来编写web应用的自动化测试.早期也即Selenium1.x时期主要使用Selenium RC(S ...

  7. selenium工作原理详解

    selenium简介 Selenium是一个用于Web应用程序自动化测试工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9, 10, 11), ...

  8. 一篇文章带你了解-selenium工作原理详解

    前言 Selenium是一个用于Web应用程序自动化测试工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla ...

  9. Selenium的实现原理,一篇文章讲透彻!

    Selenium的实现原理 对于Selenium而言,V1.0和V2.0版本的技术方案是截然不同的,V1.0 的核心是Selenium RC,而V2.0 的和核心是WebDriver,可以说完全是两个 ...

最新文章

  1. 服务器产品选型与性价比图解
  2. 微软出手,干翻 IDEA?网友:先干翻Eclipse吧..
  3. 【2018第五届世界互联网大会】世界互联网领先科技成果发布:带你看看这15项“黑科技”...
  4. git创建本地版本仓库及注意事项
  5. linux服务 Systemd 简介
  6. UI5 xml view里control id的生成逻辑
  7. 学习 Python 编程的 19 个资源
  8. mysql5.6与mysql5.5不同
  9. 又论社区风气, 与程序员是干嘛地的.
  10. Linux 源码编译安装过程-以安装XZ解压为例
  11. android fileinputstream 获取file,Android FileInputStream没有读取文件
  12. 【图像处理】图像去雾的前世今生
  13. Eclipse中启动tomcat: java.lang.OutOfMemoryError: PermGen space的解决方法
  14. support vector regression(SVR)支持向量回归
  15. PhotoShop CS5制作残旧的印章效果
  16. 伍斯特理工学院计算机博士招生,伍斯特理工学院计算机科学(计算机/沟通网络)理学硕士研究生申请要求及申请材料要求清单...
  17. C#游戏实例:弹砖块游戏
  18. Unity 粒子系统参数一
  19. 珍贵的人生格言81条
  20. jquery二级联动下拉菜单

热门文章

  1. 【NLP实战】如何基于Tensorflow搭建一个聊天机器人
  2. 中国致密气行业十四五前景分析及发展规划远景报告2022年版
  3. 前端必读:浏览器内部工作原理
  4. vue引入vue-amap
  5. div设置百分比高度 宽度
  6. Android 用虹软SDK做人脸识别
  7. 外媒分析:iPhone销量低于预期是中国市场疲软影响的
  8. python list 取重复次数
  9. 新写的c++日志库:log4K
  10. 获取自定义组件的宽度和高度