xpath

Xpath to select value of sibling attribute with namespace

半世苍凉 提交于 2020-01-20 08:07:25
问题 I'm struggling to get an XPath defined to return the value of the uniqueappversionid from the following XML: <?xml version="1.0" encoding="UTF-8"?> <manifest package="air.com.vzw.Foo" android:versionCode="0" android:versionName="0.0.0" android:installLocation="auto" xmlns:android="http://schemas.android.com/apk/res/android"> <application android:label="FooAIR"> <meta-data android:name="autoOrients" android:value="true" /> <meta-data android:name="fullScreen" android:value="false" /> <meta

Xpath层级关系定位

倖福魔咒の 提交于 2020-01-20 04:10:00
Xpath层级关系定位 1.如果一个元素,它的属性不是很明显,无法直接定位到,这时候我们可以先找它老爸(父元素) 2.找到它老爸后,再找下个层级就能定位到了 浏览器F12定位:$x(’//select[@name=“NR”]/option[2]’) Xpath定位: dr.find_elements_by_xpath(’//select[@id=“nr”]/option’) **Xpath通过父级定位,开头详细(eg://select),取的是父亲平级的标签select喔 //select[@id="nr"] 为同一级别** 来源: CSDN 作者: Rickey_cc 链接: https://blog.csdn.net/AOLIGEI_2019/article/details/104042540

selenium.common.exceptions.ElementNotVisibleException: Message: element not visible处理方法:selenium针对下拉菜单事件的处理

天大地大妈咪最大 提交于 2020-01-20 03:17:13
selenium.common.exceptions.ElementNotVisibleException: Message: element not visible处理方法:selenium针对下拉菜单事件的处理 转自http://www.cnblogs.com/itdyb/p/7460128.html 使用Selenium爬虫时,可能会遇到一些下拉菜单,动态加载,如果直接使用find_element_by_函数会报错,显示selenium.common.exceptions.ElementNotVisibleException: Message: element not visible。 意思是element是不可见的。所以无法获取到。这时候就遇到一个难题,怎么把element变成可见的呢? 这时候,我们就用ActionChains来模拟效果 ActionChains(driver).click(driver.find_element(By.ID, 'g-hd-searchs')).perform() #使用perform()才能执行action 这个时候,你会惊奇地发现:下拉菜单成功出现了。 接下来,你就可以进行你想要的操作了。 下面介绍一下ActionChains: 用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击、双击、点击鼠标右键

Python爬取——国家统计局省份加城市 并写入数据库

佐手、 提交于 2020-01-20 00:24:36
数据库设计 数据库省份表(province) 城市表(city) Python代码 import requests from lxml import etree import pymysql from fake_useragent import UserAgent #请求方法 def request ( param ) : url = 'http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2018/' url = url + param # 伪装 ua = UserAgent ( ) headers = { 'User-Agent' : ua . random } response = requests . get ( url = url , headers = headers ) # 获取字符集编码 response . encoding = response . apparent_encoding data = response . text # 将源码数据加载到数据对象中 data = etree . HTML ( data ) return data param = 'index.html' data = request ( param ) #省份数据列表 province_data = [ ] #城市数据列表 city

webmagic的设计机制及原理-如何开发一个Java爬虫 转

╄→尐↘猪︶ㄣ 提交于 2020-01-19 21:49:17
此文章是webmagic 0.1.0版的设计手册,后续版本的入门及用户手册请看这里: https://github.com/code4craft/webmagic/blob/master/user-manual.md 之前就有网友在博客里留言,觉得webmagic的实现比较有意思,想要借此研究一下爬虫。最近终于集中精力,花了三天时间,终于写完了这篇文章。之前垂直爬虫写了一年多,webmagic框架写了一个多月,这方面倒是有一些心得,希望对读者有帮助。 webmagic的目标 一般来说,一个爬虫包括几个部分: 页面下载 页面下载是一个爬虫的基础。下载页面之后才能进行其他后续操作。 链接提取 一般爬虫都会有一些初始的种子URL,但是这些URL对于爬虫是远远不够的。爬虫在爬页面的时候,需要不断发现新的链接。 URL管理 最基础的URL管理,就是对已经爬过的URL和没有爬的URL做区分,防止重复爬取。 内容分析和持久化 一般来说,我们最终需要的都不是原始的HTML页面。我们需要对爬到的页面进行分析,转化成结构化的数据,并存储下来。 不同的爬虫,对这几部分的要求是不一样的。 <!--more--> 对于通用型的爬虫,例如搜索引擎蜘蛛,需要指对互联网大部分网页无差别进行抓取。这时候难点就在于页面下载和链接管理上--如果要高效的抓取更多页面,就必须进行更快的下载;同时随着链接数量的增多

Python XPath抓取小说《三国演义》

天大地大妈咪最大 提交于 2020-01-19 19:29:25
from lxml import etree import requests """ 获取章节列表和地址 """ def getContents(): tagret = "https://www.kanunu8.com/files/old/2011/2447.html" req = requests.get(url=tagret) req.encoding = "gb2312" html = req.text bookdata = etree.HTML(html) table_list = bookdata.xpath('//table[9]//tr[1]//td[2]//table[4]//tr[1]//td[1]//table[1]//a//text()') table_url = bookdata.xpath('//table[9]//tr[1]//td[2]//table[4]//tr[1]//td[1]//table[1]//a//@href') for title in table_list: print(title) for u in table_url: print(u) """ 获取小说内容 """ def getContent(): tagret = "https://www.kanunu8.com/files/old/2011/2447/71775.html"

selenium webdriver从安装到使用(python语言),显示等待和隐性等待用法,切换窗口或者frame,弹框处理,下拉菜单处理,模拟鼠标键盘操作等

久未见 提交于 2020-01-19 18:24:51
selenium 的用法 selenium2.0 主要包含 selenium IDE 和 selenium webDriver , IDE 有点类似 QTP 和 LoadRunner 的录制功能,就是 firefox 浏览器的一个插件,用来录制在浏览器的一系列操作,录制完成后可以回放,可以转换为代码输出出来。本节主要讲的是 selenium 的 webdriver 功能。结合 Python 语言来讲解具体用法。 WebDriver 的实现原理: WebDriver 直接利用了浏览器的内部接口来操作浏览器。 对于不同平台中的不同浏览器,必须依赖浏览器内部的 Native Component ( 原生组件 ) 来实现把对 WebDriver API 调用转化为对浏览器内部接口的调用。 Selenium 1.0 采用 JavaScript 的合成事件来处理网页元素的操作,例如要单击某个页面元素,要先使用 JavaScript 定位到这个元素,然后触发单击事件。 而 WebDriver 使用的是系统的内部接口或函数,首先是找到这个元素的坐标位置,并在这个坐标点触发一个鼠标左键的单击操作。 环境配置 在使用之前,首先要将用到的环境配置好,这里主要需要两个环境,一个是 selenium 库,是一个第三方库,用 pip install selenium 安装即可,或者可以去 pypi

xPath解析HTML学习速成教程

不羁岁月 提交于 2020-01-19 11:24:08
XPath 简介 XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。 在您继续学习之前,应该对下面的知识有基本的了解: HTML / XHTML XML / XML 命名空间 格式 表达式 描述 nodename 选取此节点的所有子节点。 / 从根节点选取。 // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。 . 选取当前节点。 … 选取当前节点的父节点。 @ 选取属性。 案例 <!DOCTYPE html> < html > < head > < meta charset = " utf-8 " /> < title class = ' title ' > 网页标题 </ title > </ head > < body > < h1 id = ' my_h1 ' > 标题1 </ h1 > < p class = ' my_p ' > 段落1 </ p > < p class = ' my_p ' > 段落2 </ p > < span > 25.00 </ span > < span > 255.00 </ span > < div > < span > 25.00 </ span > < p > qwer </ p > </ div > < div > < span > 225.00 </ span

xml文件通过Xpath获取节点的值

∥☆過路亽.° 提交于 2020-01-19 03:38:24
介绍xml文件通过Xpath获取节点的值 调用示例: object str = CommonHelper.GetNodeInnerTextFromNodeByXpath(node.ParentNode, "/BODY/ZSXM"); 通用代码如下: /// <summary> /// 根据Xpath获取CDATA中的值 /// </summary> /// <param name="strXmlText">xml字符串</param> /// <param name="strXpath">Xpath表达式</param> /// <returns></returns> public static string GetCDataInnerText(string strXmlText, string strXpath) { string strResult = string.Empty; XmlDocument doc = new XmlDocument { InnerXml = strXmlText }; XmlNode nDataNode = doc.SelectSingleNode(strXpath); if (!Equals(nDataNode, null)) { if (nDataNode.HasChildNodes) { if (nDataNode.FirstChild

XPath : Get nodes where child node contains an attribute

社会主义新天地 提交于 2020-01-18 19:40:44
问题 Suppose I have the following XML: <book category="CLASSICS"> <title lang="it">Purgatorio</title> <author>Dante Alighieri</author> <year>1308</year> <price>30.00</price> </book> <book category="CLASSICS"> <title lang="it">Inferno</title> <author>Dante Alighieri</author> <year>1308</year> <price>30.00</price> </book> <book category="CHILDREN"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="WEB"> <title lang="en"