首页
学习
活动
专区
圈层
工具
发布

在lxml中使用xpath从搜索页面提取链接时,接收到空列表,但在元素页面上显示有12个链接具有相同的xpath

这个问题可能是由于以下几个原因导致的:

  1. 页面加载问题:搜索页面可能是通过JavaScript动态加载的,而xpath只能解析静态HTML。在这种情况下,你可以尝试使用Selenium等工具来模拟浏览器行为,等待页面加载完成后再提取链接。
  2. xpath表达式错误:请确保你的xpath表达式正确无误。可以通过在浏览器的开发者工具中使用xpath来验证表达式是否能够准确地提取到链接。
  3. 命名空间问题:如果搜索页面中使用了命名空间,你需要在xpath表达式中指定命名空间。例如,如果页面中使用了xmlns命名空间,你可以使用以下方式来解析链接:
  4. 命名空间问题:如果搜索页面中使用了命名空间,你需要在xpath表达式中指定命名空间。例如,如果页面中使用了xmlns命名空间,你可以使用以下方式来解析链接:
  5. 动态内容问题:搜索页面可能包含一些动态生成的内容,这些内容可能无法通过静态的xpath表达式来提取。在这种情况下,你可以尝试使用Selenium等工具来模拟用户操作,触发动态内容的生成,然后再提取链接。

总结起来,解决这个问题的关键是确保xpath表达式正确,并且能够准确地匹配到需要提取的链接元素。如果问题仍然存在,你可以提供更多的代码和页面结构信息,以便更好地帮助你解决问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python爬虫实战入门:豆瓣电影Top250(保你会,不会来打我)

从文件或字符串中读取 XML 或 HTML 文档; 使用 XPath 或 CSS 选择器来查找和提取文档中的数据; 解析 XML 或 HTML 文档,并将其转换为 Python 对象或字符串; 对文档进行修改...对html或xml形式的文本提取特定的内容,就需要我们掌握lxml模块的使用和xpath语法。...W3School官方文档:http://www.w3school.com.cn/xpath/index.asp 提取xml、html中的数据需要lxml模块和xpath语法配合使用 xpath语法-基础节点选择语法...使用chrome插件选择标签时候,选中时,选中的标签会添加属性class=“xh-highlight” xpath定位节点以及提取属性或文本内容的语法 表达式 描述 nodename 选中该元素。...关于xpath的下标 在xpath中,第一个元素的位置是1 最后一个元素的位置是last() 倒数第二个是last()-1 xpath语法-其他常用节点选择语法 // 的用途 //a 当前html页面上的所有的

4.9K11

爬虫实战:探索XPath爬虫技巧之热榜新闻

XPath爬虫 如果对XPath不熟悉也没关系,可以直接使用它,就能发现它与我们之前使用的BeautifulSoup有着相同的目的。只是在表达式和方法的使用上略有不同。...而在浏览器中可以使用插件工具来直接提取XPath元素。 XPath插件 有很多浏览器插件可供选择,我们只需直接获取一个即可。...") get_hot_article() print(hot_article_list) 这段代码的功能是从36氪网站的热门文章列表中提取文章的标题、链接和描述信息,并将这些信息存储在一个列表中。...其中,lxml库用于HTML解析,requests库用于发送HTTP请求。接着,定义了一个空列表hot_article_list,用于存储提取的文章信息。...使用lxml库的etree模块解析HTML内容。 使用XPath定位元素,提取文章标题和URL连接。

54643
  • 爬虫学习(三)

    XPath是一门在HTML/XML文档中查找信息的语言,可用来在HTML/XML文档中对元素和属性进行遍历。 节点:每个XML的标签我们都称之为节点。...找链接的时候可以使用 link,如果有多个链接的时候可以使用 link[1]这样来选取。 找type属性时可以使用 @type。 相对路径 //,使用时需要先选取指定元素,然后再使用。...html.xpath()获取的是一个列表,查询里面的内容需要使用索引。 lxml可以自动修正html代码。...3.解析响应数据,返回贴吧列表链接、下一页链接。 4.遍历贴吧列表链接,解析每个帖子的图片列表链接,返回图片链接。 5.遍历图片链接,发送请求,下载图片,保存图片。 6.翻页操作。...2.一个html页面中一般是有一个body,但是也有页面中套页面的情况。 3.元素、标签、节点是一个意思。 ? 总结 1、jsonpath的使用场景 a:多层字典嵌套的数据的快速提取。

    6.1K30

    Python爬虫之数据提取-lxml模块

    语法-基础节点选择语法 掌握 xpath语法-节点修饰语法 掌握 xpath语法-其他常用语法 掌握 lxml模块中使用xpath语法定位元素提取属性值或文本内容 掌握 lxml模块中etree.tostring...重启浏览器后,访问url之后在页面中点击xpath图标,就可以使用了 ?...使用chrome插件选择标签时候,选中时,选中的标签会添加属性class="xh-highlight" 4.1 xpath定位节点以及提取属性或文本内容的语法 表达式 描述 nodename 选中该元素...5.2 关于xpath的下标 在xpath中,第一个元素的位置是1 最后一个元素的位置是last() 倒数第二个是last()-1 5.3 语法练习 从itcast的页面中,选择所有学科的名称、第一个学科的链接...对象构成的列表:xpath规则字符串匹配的是标签,列表中的Element对象可以继续进行xpath 7.4 lxml模块使用示例 运行下面的代码,查看打印的结果 from lxml import

    2.2K20

    scrapy框架

    项目管道(Item Pipeline),负责处理有蜘蛛从网页中抽取的项目,他的主要任务是清晰、验证和存储数据。当页面被蜘蛛解析后,将被发送到项目管道,并经过几个特定的次序处理数据。...其包含了一个用于下载的初始URL,如何跟进网页中的链接以及如何分析页面中的内容, 提取生成 item 的方法。...该名字必须是唯一的,您不可以为不同的Spider设定相同的名字。 start_urls: 包含了Spider在启动时进行爬取的url列表。 因此,第一个被获取到的页面将是其中之一。...选择所有的 元素 //div[@class=”mine”]: 选择所有具有 class=”mine” 属性的 div 元素 提取数据: 观察HTML源码并确定合适的XPath表达式。...我们可以通过这段代码选择该页面中网站列表里所有元素:response.xpath(‘//ul/li’) Item 对象是自定义的python字典。 您可以使用标准的字典语法来获取到其每个字段的值。

    1.4K30

    Selenium——控制你的浏览器帮你爬虫

    xpath是一个非常强大的元素查找方式,使用这种方法几乎可以定位到页面上的任意元素,在后面我会单独讲解。...Xpath是很强大的元素查找方式,使用这种方法几乎可以定位到页面上的任意元素。...在正式开始使用之前,我们先了解下什么是Xpath。XPath是XML Path的简称,由于HTML文档本身就是一个标准的XML页面,所以我们可以使用XPath的语法来定位页面元素。...另外需要多说一句的是,当xpath的路径以/开头时,表示让Xpath解析引擎从文档的根节点开始解析。当xpath路径以//开头时,则表示让xpath引擎从文档的任意符合的元素节点开始进行解析。...有一点注意一下,翻页之后,等待延时一下,等待页面加载之后在爬取内容,这里,我们使用最简单的办法,用sleep()进行延时。

    2.4K20

    如何快速爬取新浪新闻并保存到本地

    #函数返回值为存放抽取信息的字典 2、使用lxml,编写抽取模块 编写一个函数,使用lxml进行抽取的模块,使用xpath方法,来抽取详情页面中的新闻标题、内容、来源、时间等信息。...,使用xpath方法抽取信息时,从网页复制元素的xpath可能已无法直接使用 #如本例中从网页中复制的date-source元素的xpath为“//*[@id="top_bar"]/div/div...("result").get("data") #获取result节点下data节点中的数据,此数据为新闻详情页的信息 #从新闻详情页信息列表news中,使用for循环遍历每一个新闻详情页的信息...("result").get("data") #获取result节点下data节点中的数据,此数据为新闻详情页的信息 #从新闻详情页信息列表news中,使用for循环遍历每一个新闻详情页的信息...("result").get("data") #获取result节点下data节点中的数据,此数据为新闻详情页的信息 #从新闻详情页信息列表news中,使用for循环遍历每一个新闻详情页的信息

    6.1K20

    Python3网络爬虫(九):使用Selenium爬取百度文库word文章

    这个无需着急,xpath是非常强大的元素查找方式,使用这种方法几乎可以定位到页面上的任意元素,在后面我会进行单独讲解。...那么接下来,让我们聊聊xpath。 3.2 Xpath     这个方法是非常强大的元素查找方式,使用这种方法几乎可以定位到页面上的任意元素。...另外需要多说一句的是,当xpath的路径以/开头时,表示让Xpath解析引擎从文档的根节点开始解析。当xpath路径以//开头时,则表示让xpath引擎从文档的任意符合的元素节点开始进行解析。...[1]//input 查找页面上第一个form元素://form[1] 查找页面上id为loginForm的form元素://form[@id='loginForm'] 查找页面上具有name属性为username...,翻页方式变了,需要换种方法处理,有兴趣的可以自己看下; 等待页面切换方法太out,可以使用显示等待的方式,等待页面加载; selenium虽好,但是有些耗时,可以使用PhantomJS对这部分代码进行替换

    3.7K61

    如何识别、抓取和构建高质量机器学习数据集(上)

    图片中的页面显示了100个产品,其余的产品可以通过右上角的页面滚动器访问。 接下来,我们单击其中一个产品,观察每个产品的页面。在顶部,我们有与项目相关的元数据,在底部,我们有产品评论。 ? ?...提取产品链接 由于类别的数量有限,没有必要编写脚本来提取它们的链接;它们可以手工收集。在本节中,我们将重点从服装类别之一:上衣中提取产品链接。...我们还将使用Selenium (Web浏览器自动化工具)进行数据提取。 那么,让我们开始吧: 到目前为止,我们知道在每个类别中,产品以100组的形式呈现,我们可以使用一个页面滚动器来访问所有的产品。...在下面的图片中,我们看到在我们的例子中类是thumbu -link。很可能,所有其他产品链接也将使用相同的类进行样式化(只需验证一次)。 ?...当我们将鼠标悬停在标记内的各种元素上时,相应的视图将在页面上突出显示。

    1.2K20

    一起学爬虫——使用xpath库爬取猫眼电

    之前分享了一篇使用requests库爬取豆瓣电影250的文章,今天继续分享使用xpath爬取猫眼电影热播口碑榜 XPATH语法 XPATH(XML Path Language)是一门用于从XML文件中查找信息的语言...通用适用于从HTML文件中查找数据。工欲善其事必先利其器,我们首先来了解XPATH常用的语法规则。...XPATH要配合requests一起使用,使用requests抓取网页信息,然后使用XPATH解析网页信息,XPATH在lxml库中,因此需要在pycharm中安装lxml。...(movie_name_xpath) print(movie_name) 运行结果:[] 上面的结果显示抓取到的是a元素,就是html中的a标签,要想获取该元素中的文本值...其中src的是图片的地址,在xpath提取规则追加上@src,变为: //*[@id="app"]/div/div/div/dl/dd[1]/a/img[2]/@src 看下这个xpath规则是否能提取到图片的链接地址

    98110

    python爬虫入门(三)XPATH和BeautifulSoup4

    XPATH XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言,可用来在 XML 文档中对元素和属性进行遍历。...谓语 谓语用来查找某个特定的节点或者包含某个指定的值的节点,被嵌在方括号中。 在下面的表格中,我们列出了带有谓语的一些路径表达式,以及表达式的结果: ? 选取位置节点 ? 选取若干路劲 ?  ...LXML库 安装:pip install lxml lxml 是 一个HTML/XML的解析器,主要的功能是如何解析和提取 HTML/XML 数据。...lxml和正则一样,也是用 C 实现的,是一款高性能的 Python HTML/XML 解析器,可以利用XPath语法,来快速的定位特定元素以及节点信息。  简单使用方法 #!...爬取美女吧图片  1.先找到每个帖子列表的url集合 ? ? 2.再找到每个帖子里面的每个图片的的完整url链接 ? ? 3.要用到 lxml 模块去解析html #!

    2.6K40

    独家 | 教你用Scrapy建立你自己的数据集(附视频)

    项目目录 使用Google Chrome浏览器(或Firefox)查找好起始URL 在爬虫框架中,start_urls是当没有指定特定网址时爬虫开始抓取的网址列表。...我们将使用start_urls列表中的元素来获取单个筹款活动链接。 1.下面的图片显示,根据您选择的类别,您将获得不同的起始网址。 黑色突出显示的部分是我们此次爬取的分类。...它的作用是创建一个start_urls列表。变量npages代表的是我们想从多少个额外的页面(在第一页之后)中获取筹款活动链接。...我们将使用可用于从HTML文档中选择元素的XPath。 我们所要做的第一件事是尝试获得提取单个筹款活动链接的xpath表达式。 首先,我们查看筹款活动的链接大致分布在HTML的哪个位置。...1.接下来,我们打开一个单独的筹款活动页面(见下面的链接),以便爬取(我提醒一下,有些活动很难查看):https://fundrazr.com/savemyarm 2.使用与以前相同的检查过程,我们检查页面上的标题

    2.1K80

    强大的Xpath:你不能不知道的爬虫数据解析库

    基本语法: HTML 元素以开始标签起始;HTML 元素以结束标签终止 元素的内容是开始标签与结束标签之间的内容 某些 HTML 元素具有空内容(empty content) 空元素在开始标签中进行关闭...(以开始标签的结束而结束) 大多数 HTML 元素可拥有属性;属性推荐使用小写 关于空元素的使用:在开始标签中添加斜杠,比如,是关闭空元素的正确方法,HTML、XHTML 和 XML 都接受这种方式...= tree.xpath("/html/head/title") title 通过上面的结果发现:每个Xpath解析的结果都是一个列表 如果想取得标签中的文本内容,使用text(): # 从列表中提取相应内容...p_text 如果是先获取p标签中的全部内容,结果是列表,再使用python索引获取,注意索引为2: 非标签直系内容的获取: 标签直系内容的获取:结果为空,直系的li标签中没有任何内容 如果想获取...的使用总结下: //:表示获取标签非直系内容,有跨越层级 /:表示只获取标签的直系内容,不跨越层级 如果索引是在Xpath表达式中,索引从1开始;如果从Xpath表达式中获取到列表数据后,再使用python

    1.7K40

    Selenum获取招聘数据

    ,在搜索输入框输入搜索的关键字“自动化测试”,点击搜索按钮 获取第一页(列表页显示的信息包含了各个公司的招聘信息)的源码,获取源码后 使用lxml来对源码进行解析,获取每个公司招聘详情信息的URL,也就是链接地址...然后点击跳转到每个公司招聘的详情页面,再获取详情页面的源码,再使用lxml进行解析,获取到具体招聘单位的公司名称,招聘Title,职位要求,薪资范围 如上是实现的思路,具体见实现的代码。...,获取到第一页的列表源码并且解析,获取每个公司招聘的详情页面的链接地址,见实现的源码: class Job(object): '''selenium结合网络爬虫获取5job西安地区招聘自动化测试工程师的薪资和要求...,如有疑问,可查看本人写的Selenium的文章),在方法requets_detail_page中,点击每个详情的链接地址跳转到详情页,见源码: def request_detail_page(self...,url): '''在列表页点击跳转到详情页面''' #切换窗口 self.driver.execute_script("window.open('%s')"%url) #切换到详情页

    1.1K60

    数据获取:​网页解析之lxml

    XPath,它是一门在XML文档中查找信息的语言,具有自身的语法,是用来确定XML文档中某部分位置的语言,最初是用来搜寻XML文档的,当然也适用于HTML文档的搜索。...通配符,XPtah中可以使用正则表达式 [@attribute] 选取具有此属性的所有元素 [@attribute='value'] 选取此属性值为value的所有元素 [tag] 选取所有具有指定元素的直接子节点...解析节点 从得到的etree对象中,可以通过xpath的语法定位到相关需要的内容,这需要对XPath语法有一定的了解。...点击此按钮后,按钮会变为蓝色,当鼠标移动到页面时,页面会显示元素的标签和大小,并且光标所在的位置,页面会变成蓝色,如图所示,在查看器中的也会相应显示当前光标位置所在位置的代码。...上面示例中,使用的火狐浏览器作为演示,其他的Chrome或者360浏览器中都具有此功能,但是不同的浏览器获取的XPath可能不一样,这个是没有问题的,因为在页面中的同一个位置有多种表达的方式,只要最后获得的正确的结果就没问题

    56710

    xpath来救!

    今天和大家来聊聊xpath。 使用XPath XPath,全称XML Path Language,即XML路径语言,它是在XML语言中查找信息的语言。...选取当前节点的父节点 @ 选取属性 准备工作 在使用之前得先安装好lxml这个库,如果没有安装请参考下面的安装方式。...如果上面的代码你修改一段,变成这样: result = html.xpath('/li') 运行之后你会发现列表是空的,因为该文档的的子节点中没有 li 这个节点,li 是该文档的子孙节点,而该文档的子节点是...p={i}' page_url.append(url) return page_url 上面代码的功能是构造每一页的链接。将链接保存在page_url中。...获取每一页中的图片链接 在上图中你会发现,图片的链接就藏在了data-progressive里面,这不就是img标签的属性吗?有何难?

    88910
    领券