【Python_00】Day_02_简单Selenium爬虫

简单爬虫



前言

学习了一些简单爬虫


一、基础知识

浏览器:安装在客户端,具有交互界面,用来访问和渲染服务器资源的应用软件
在这里插入图片描述
服务器:部署在机房,为网站存储和处理数据的高性能不间断工作计算机
在这里插入图片描述
html:通过一系列标签,将网络上的文字、图片等数据整合在一起的语言
<标签名 属性名=“值” 属性名=“值” >文本</标签名>
网页:存储HTML标签、CSS样式、JavaScript脚本等元素组成的文件

二、XPath表达式

可以在html中定位标签的字符串,于1999年成为W3C标准。

XPathHelper

用于轻松解析html标签的谷歌Chrome浏览器扩展程序 安装: 下载压缩包”XPathHelper.zip”
打开Chrome浏览器 -> 设置 -> 更多工具 -> 扩展程序 - 开发者模式

在这里插入图片描述

打开开发者模式 -> 加载已解压的扩展程序 -> 重启浏览器

在这里插入图片描述

使用: 打开网页,选定内容后右键“检查” Ctrl + Shift + X 启动XPathHelper 参照开发者窗口填写XPath表达式
在这里插入图片描述

三、Web请求过程

静态网页:在服务器端将页面结构与数据整合在一起返回给浏览器(网页源代码中看数据)。
https://movie.douban.com/chart

动态网页:客户端第一次请求服务器返回页面结构,第二次请求服务器返回数据(在Fetch/XHR中看数据)。
https://movie.douban.com/typerank?type_name=%E5%8A%A8%E4%BD%9C&type=5&interval_id=100:90&action=

重要请求信息:
– Cookie:服务器存储在浏览器中的信息
– Referer:防盗链(记录发起本次请求的页面URL)
– User-Agent:浏览器的身份标识

四、Selenium

简介

Web网站自动化测试工具
通过编写自动化程序,模拟人在浏览器中操作网页
从网页获取信息

原理

在这里插入图片描述

安装

  1. 在命令行安装Python库:
    Linux操作系统:sudo pip3 install selenium -i https://pypi.douban.com/simple/
    Windows:python -m pip install selenium -i https://pypi.douban.com/simple/
  2. 根据浏览器版本下载驱动
    http://npm.taobao.org/mirrors/chromedriver/
  3. Linux安装
    下载后提取到主目录
    使用命令拷贝到/usr/bin/目录下:sudo cp chromedriver /usr/bin/
    添加权限:sudo chmod 777 /usr/bin/chromedriver
  4. Windows
    把解压后文件拷贝到python安装目录的Scripts目录下
    查看python安装目录(cmd命令行):where python

打开浏览器

from selenium import webdriver

常规

driver = webdriver.Chrome()
driver.get(“网址”)

无头

option = webdriver.ChromeOptions()
option.add_argument(‘–headless’)
driver = webdriver.Chrome(options=option)
操作浏览器

关闭

driver.quit()

后退

driver.back()

向前

driver.forward()

定位html标签

from selenium.webdriver.common.by import By

查找单个元素,结果类型为WebElement
标签 = driver.find_element(By.XPATH,‘‘XPath表达式’’)

查找多个元素,结果类型为list[WebElement]
标签列表 = driver.find_elements(By.XPATH,‘‘XPath表达式’’)

操作html标签

获取标签文本
结果 = 标签.text

模拟鼠标单击
标签.click()

模拟键盘输入
标签.send_keys(“内容”)

清空输入框值
标签.clear()

获取标签属性值
结果 =标签.get_attribute(“属性名”)

Pandas

Python数据分析工具,可以完美代替Excel完成除单元格样式设置外的所有功能

DataFrame

Pandas中一个表格型的数据类型
df = pd.DataFrame(字典类型的表格)
df.to_csv(“文件名.csv”, index=False)

一些练习

"""
    练习:百度热搜-新闻
"""
from selenium import webdriver
from selenium.webdriver.common.by import By

# 1. 打开浏览器
driver = webdriver.Chrome()
driver.get("https://top.baidu.com/board?tab=realtime")
# 3. 定位html标签
list_txt = []
for item in driver.find_elements(By.XPATH,'//div[@class="c-single-text-ellipsis"]'):
    list_txt.append(  item.text  )
print(list_txt)

# 2. 操作浏览器
driver.quit() # 退出
"""
    练习:简体转繁体
"""
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
# driver = webdriver.Chrome()
#  1. 打开无头浏览器
option = webdriver.ChromeOptions()
option.add_argument("--headless")
driver = webdriver.Chrome(options=option)
driver.get("https://www.aies.cn/")
# 2.  定位文本框与按钮
txt_input = driver.find_element(By.XPATH, '//textarea[@id="txt"]')
button_translate = driver.find_element(By.XPATH, '//input[@value="简体转繁体"]')
while True:
    # 3. 输入
    txt_input.send_keys(input("请输入简体中文:"))
    # 4. 转换
    button_translate.click()
    time.sleep(1) # 睡眠1秒,等待结果
    # 5. 获取结果
    print("繁体是:" + txt_input.get_attribute("value"))
    # 6. 清空
    txt_input.clear()

XpathHelper下载链接

链接:https://pan.baidu.com/s/1KtIT7BCW_Xo3RvQCQXs6vA
提取码:7qc2

总结

友友儿,今天就写到这了
希望明天能吃到稍微好吃一点的饭

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值