这里也是初学,参考买的书,反正再重复一遍,摘录的比较简略,后面再学到的时候再完善……
如何将网页元素告诉Selenium,并让他自动操控网页及读取数据
1.通过HTML标签类型和属性class实现定位
1.1标签类型
以豆瓣电影为例
from selenium import webdriver
url = 'https://movie.douban.com/'
path = 'C:\\Users\\Admin\\AppData\\Local\\Google\\Chrome\\Application\\chromedriver.exe'
# 将webdrive类实例化
driver = webdriver.Chrome(executable_path=path)
driver.get(url)
tag_name = driver.find_element_by_tag_name('div').text
print('由tag_name定位: ',tag_name)
输出显示为:
由tag_name定位: 登录/注册
下载豆瓣客户端
豆瓣 读书 电影 音乐 同城 小组 阅读 FM 时间 豆品 更多
这种定位方式只能定位符合条件的第一个元素
1.2 元素属性class
class_name = driver.find_element_by_class_name('nav-items').text
print('由class_name 定位:',class_name)
输出如下
由class_name 定位: 影讯&购票 选电影 电视剧 排行榜 分类 影评 2018年度榜单 2018书影音报告
2.通过文字定位
link_text = driver.find_element_by_link_text('排行榜').text
print("由linktext定位:",link_text)
partial_link_text = driver.find_element_by_partial_link_text('书影').text
print("由particallinktext定位:",partial_link_text)
输出如下:
由linktext定位: 排行榜
由particallinktext定位: 2018书影音报告
3.元素的定位选择器
代码如下:
xpath = driver.find_element_by_xpath('//*[@id="db-nav-movie"]/div[1]/div/div[1]/a').text
print("xpath定位:",xpath)
selector = driver.find_element_by_css_selector('#db-nav-movie > div.nav-wrap > div > div.nav-logo > a').text
print("selector定位:",selector)
输出如下:
xpath定位: 豆瓣电影
selector定位: 豆瓣电影
4.通过元素id和name的属性值来定位
driver.find_element_by_id('inp-query').send_keys('红海行动')
driver.find_element_by_name('search_text').send_keys('我不是药神')
定位到搜索框并传入关键字搜索