python用Selenium模拟浏览器爬取数据是,如何才能使用xpath取a标签里的内容。或者h标签的内容或者p标签等。
求大神赐教谢谢。
在使用selenium时有个大坑! driver.find_elements_xxx返回的是个列表,注意和element区分,匹配a标签如下:
driver.find_element_by_xpath(//div[@id="header"]/div[2/a])
html = `
<div>
<a href='www.some.com'><span>hello </span>world</a>
</div>
`
# 获取a标签下的文本
xpath("//a/text()") # world
# 获取a标签以及子标签中的内容
xpath("//a//text()") # hello world
# 获取a标签中的连接
xpath("//a/@href") # www.some.com
browser.find_elements_by_xpath('//a')
如果是某个div下的a,可以'//div[@id="xxx"]/a'
其它的类似。
from selenium import webdriver
#from time import sleep
browser=webdriver.Chrome()
url='https://book.douban.com/tag/%E5%B0%8F%E8%AF%B4'
browser.get(url)
data=browser.page_source
browser.find_elements_by_xpath('//*[@id="subject_list"]/ul/li[1]/div[2]/div[1]')
附上我代码,获取不到内容的。
大佬们
这是我的反馈信息:
[]
这是反馈信息,没有内容的。
看你要取标签内属性的内容,还是中间的文本内容。
如果是属性内容就是:
xpath("//a/@href")或者xpath("//a/@class")
a标记后面加斜杠,跟@后面是属性名
如果是文本内容就是
xpath("//a/text()")