Python爬虫Xpath定位怎么实现,方法是什么
Admin 2022-07-28 群英技术资讯 335 次浏览
使用selenium+lxml中的etree进行配合使用,使用etree解析html网页
import requests from lxml import etree import time import socket import csv from selenium import webdriver from configparser import ConfigParser from selenium.webdriver import Chrome from selenium.webdriver import ChromeOptions #禁止图片和css加载 chrome_options = webdriver.ChromeOptions() prefs = {"profile.managed_default_content_settings.images": 2} chrome_options.add_experimental_option("prefs", prefs) option = ChromeOptions() option.add_experimental_option('excludeSwitches', ['enable-automation']) # 如果想加载图片,就把下面第二句话改第一句话,删掉上面的“禁止图片和css加载”部分 # wb = Chrome(options=option) wb=webdriver.Chrome(options=chrome_options) #最大化窗口、输入网址、等待至网页加载完成(防止元素还没加载出来就开始爬了这样自然爬不到数据。如果一直加载不出就等10秒,加载好了就立刻结束等待) wb.maximize_window() wb.get("https://www.tianyancha.com/") wb.implicitly_wait(5)
然后获取网页数据,这里表明哪怕后面出错了,仍然可以延续wb的位置继续控制浏览器
data = wb.page_source time.sleep(3) data = wb.page_source time.sleep(3) page_all.append(data) html = etree.HTML(data) company = html.xpath('/html/body/div/div/div[2]/div/div[1]/div[1]/div[3]/div[1]/div[1]/div[1]/h1/text()') print(company )
这样的好处就是,对于批量处理的网页,有的标签位置不在同一个地方,那么我们就是不使用全Xpath路径,而使用相对路径,用@制定某种属性的标签,下载相关数据
"//div[@class='mainArea']/ul/li"
使用//div[@class=‘mainArea’]的意思是:从根部(//)查找 class值为 mainArea的Node.
所以,那么就很简单了 //某元素[@class=‘CLASS值’]
大家可以按照这个公式来查找 class的元素了。
剩下的 /ul/li 表示的是,继续查找 class='mainArea’的div包括的ul元素下面的li 节点集合。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
在进行数据分析时经常需要按照一定条件创建新的数据列,然后进行进一步分析,下面这篇文章主要给大家介绍了关于Python Pandas多种添加行列数据方法的相关资料,需要的朋友可以参考下
协程:英文名Coroutine,是单线程下的并发,又称微线程,纤程。协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度的。对比操作系统控制线程的切换,用户在单线程内控制协程的切换。协程自己本身无法实现并发(甚至性能会降低),协程+IO切换性能提高。
这篇文章主要介绍了快速了解Python开发中的cookie及简单代码示例,具有一定借鉴价值,需要的朋友可以参考下
这篇文章主要为大家介绍了Python线程同步,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
这篇文章主要介绍了Python 制作子弹图,众所周知,Python 的应用是非常广泛的,今天我们就通过 matplotlib 库学习下如何制作精美的子弹图,需要的朋友可以参考一下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008