xpath

lxml中的xpath股票信息提取

倖福魔咒の 提交于 2020-03-10 10:58:09
  lxml中的xpath股票信息提取: import urllib.request import lxml import lxml.etree import re def download(url): headers={"User-Agent":"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0);"} request = urllib.request.Request(url, headers=headers) # 请求,修改,模拟http. data = urllib.request.urlopen(request).read() # 打开请求,抓取数据 #data=data.decode("gbk").encode("utf-8")#乱码 mytree=lxml.etree.HTML(data) datalist=mytree.xpath("//*[@id=\"datalist\"]//tr//td//text()") print(datalist) for linedata in datalist: print(linedata) download("http://quote.stockstar.com/fund/stock_3_1_2.html") 来源: https://www.cnblogs

xpath获取同级元素

自作多情 提交于 2020-03-10 05:21:35
XPath轴(XPath Axes)可定义某个相对于当前节点的节点集: 1、child 选取当前节点的所有子元素 2、parent 选取当前节点的父节点 3、descendant 选取当前节点的所有后代元素(子、孙等) 4、ancestor 选取当前节点的所有先辈(父、祖父等) 5、descendant-or-self 选取当前节点的所有后代元素(子、孙等)以及当前节点本身 6、ancestor-or-self 选取当前节点的所有先辈(父、祖父等)以及当前节点本身 7、preceding-sibling 选取当前节点之前的所有同级节点 8、following-sibling 选取当前节点之后的所有同级节点 9、preceding 选取文档中当前节点的开始标签之前的所有节点 10、following 选取文档中当前节点的结束标签之后的所有节点 11、self 选取当前节点 12、attribute 选取当前节点的所有属性 13、namespace 选取当前节点的所有命名空间节点 如:要定位当前td同级后的一个td //td[.='text']/following-sibling::td following-sibling 选取当前节点之后的所有同级节点,跟preceding-sibling一样都是选取同级同父的节点,只不过following是取对应节点之后的节点,preceding

再爬拉钩,直接忽略反爬!Selenium+Xpath+re 可见可爬

本小妞迷上赌 提交于 2020-03-09 19:04:53
再爬拉钩,直接忽略反爬!Selenium+Xpath+re 可见可爬 之前我写过一篇博 python成功爬取拉勾网——初识反爬(一个小白真实的爬取路程,内容有点小多) 这是我第一次对具有多种反爬措施的网站进行的爬取,之前爬取的大都是简单的定点静态网页爬取(练习简单的python网络爬虫库的使用),所以遇到了一大波挫折,看了很多大佬的博客后才勉强解决,当然现在已经可以很好的理解拉钩数据加载的方式(Ajax动态加载数据)和反爬措施有很好的了解啦😁 最近学习了Selenium自动化测试库,就想尝试的用这种方法对拉钩再次进行爬取,体会其中的不同,使用这种库当然是因为它模拟了浏览器的浏览和人为的点击输入,不需要对网页请求响应的分析,更不需要构造头部请求,所以便想试一试。因为不需要过多的分析,所以直接上代码! 导入需要的库: from selenium import webdriver import time import lxml from lxml import etree import re 在主方法中进行模拟浏览器浏览和点击,若是放在某一个方法中可能会出现可以模拟浏览成功,但可能出现秒退出的结果: if __name__ == '__main__' : url = 'https://www.lagou.com/' #login(url) #初始化浏览器 driver =

自动化测试面试题及答案大全(2)

人盡茶涼 提交于 2020-03-09 12:20:47
自动化测试面试题及答案大全(2) 原创测试喵 最后发布于2019-04-18 09:40:05 阅读数 3425 收藏 展开 问题1:Selenium是什么,流行的版本有哪些? 是一个开源的web自动化测试的框架,支持多种编程语言,支持跨浏览器平台进行测试。 Selenium 1.0或Selenium RC Selenium 2.0或Selenium Webdriver Selenium 3.0 问题2:你如何从命令行启动Selenium RC? java -jar selenium-server.jar // 在浏览器中运行一套Selenese脚本 java -jar selenium-server.jar -htmlSuite 问题3:在我的机器端口4444不是免费的。我怎样才能使用另一个端口? //你可以在运行selenium服务器时指定端口为 - Java -jar selenium-server.jar -port 5555 问题4:什么是Selenium Server,它与Selenium Hub有什么不同? Selenium Server是使用单个服务器作为测试节点的一个独立的应用程序。 Selenium hub代理一个或多个Selenium的节点实例。一个hub 和多个node被称为Selenium grid

全国图书馆参考咨询联盟模拟登陆及爬取可爬取的图片

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-09 11:59:12
一、编程思路 1.模拟登陆 采用selenium PhantomJS 采用Chrome Firefox 这些,我的电脑无法截取验证码位置,读者可以自行尝试 验证码识别可采用tesserocr 我采用手动输入 2、查询,获取搜索框,用户输入关键字并查询 3、页面信息,F12查看即可 ,若采用find_element_by_xpath()查询需注意element 返回是第一个节点信息 elements返回是一个列表 4、书本具体信息、F12查看,后面操作很简单 5、文献传递页面、这个地方是最难的,右键查看文献传递这个按钮,点击其中href是无法进入的,这个只是一种绑定关系,需要仔细观察进入文献传递页面前后的network中第一个文本中的信息,里面存在很多url, 只有refer 点击可以进入,分析refer url里面的元素,在进入前的那个页面的url可找到,后面采用切片即可 6、下载书名页...............,此处我采用的是观察图片的链接直接的关系,从而获取,这个地方需要注意的是,图片需要不断的滑动滑动条才能加载图片,否则无法下载 7、保存图片 ,注意 'w' 和‘wb’使用即可 8、最后需要注意爬取频率,否则很容易被发现。 from selenium import webdriver import time #import tesserocr import

Selenium学习(2) 元素定位

爷,独闯天下 提交于 2020-03-07 10:59:55
元素的定位是自动化测试的核心,想要操作一个元素,首先应该识别这个元素。 webdriver提供一个一系列的元素定位方法,常用的有以下几种: id name class name link text partial link text tag name xpath css selector Frame 嵌套页面元素定位 By 元素定位:id、name、class_name 示例: from selenium import webdriver from time import sleep driver = webdriver.Chrome() driver.get("www.baidu.com") sleep(2) #driver.find_element_by_id("kw").send_keys("测试一") #driver.find_element_by_name("wd").send_keys("测试二") driver.find_element_by_class_name("s_ipt").send_keys("测试三") sleep(3) driver.find_element_by_id("su").click() sleep(3) driver.quit() 元素定位:link_text 示例: from selenium import webdriver from

python爬取天气预报用163邮箱发

我只是一个虾纸丫 提交于 2020-03-06 12:43:26
import smtplib import pandas as pd import numpy as np import requests from lxml import etree from email . mime . text import MIMEText def parse ( url = 'https://www.tianqi.com/shanghai' ) : headers = { 'User-Agent' : 'Mozila/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36' } html = requests . get ( url , headers = headers ) bs = etree . HTML ( html . text ) #今天天气相关数据:日期,星期几,天气,最低气温,最高气温 today_date = bs . xpath ( '//ul[@class = "week"]/li[1]/b/text()' ) [ 0 ] today_week = bs . xpath ( '//ul[@class = "week"]/li[1]/span/text()' ) [ 0 ] today

XPath解析中的 'Element a at 0x5308a80'是什么?

余生颓废 提交于 2020-03-06 10:15:35
from lxml import etree当我们不用框架的时候会用到这样的库,然后进行xpath,可有时候得到的却不是我们想要的而是:Element 类型的东西,那我们怎么转换成自己想要的东西呢? from lxml import html myWant = html.tostring(yourElement[0], encoding='utf-8').decode('utf-8')    来源: https://www.cnblogs.com/fh-fendou/p/12425003.html

How to match <sup>value</sup> in XSL-FO

北战南征 提交于 2020-03-06 04:10:11
问题 I'm using xsl-fo and trying to style xref content within a <sup> eg I want to make the 2 superscript. <sup id="FNB-0002"><xref href="#Comp_CLJONLINE_CLJ_2010_04_2/FN-0002">2</xref></sup> I am using the following code which I think should work. <xsl:template match="sup[@id='*']"> <fo:inline font-size="24pt" font-weight="bold" text-indent="2em" text-transform="uppercase" > <xsl:apply-templates/> </fo:inline> </xsl:template> But none of the styles I am applying are being recognised. I'm

How to match <sup>value</sup> in XSL-FO

那年仲夏 提交于 2020-03-06 04:09:51
问题 I'm using xsl-fo and trying to style xref content within a <sup> eg I want to make the 2 superscript. <sup id="FNB-0002"><xref href="#Comp_CLJONLINE_CLJ_2010_04_2/FN-0002">2</xref></sup> I am using the following code which I think should work. <xsl:template match="sup[@id='*']"> <fo:inline font-size="24pt" font-weight="bold" text-indent="2em" text-transform="uppercase" > <xsl:apply-templates/> </fo:inline> </xsl:template> But none of the styles I am applying are being recognised. I'm