爬虫xpath提取数据的奇淫巧计!!!!!

有些小伙伴在练习爬虫的时候由于xpath定位不熟练,导致反复的进行请求,导致请求次数过多,接下来就很血腥!!!

为此绞尽脑汁做了一个方法:

1.对目标网站进行请求,

2.将请求到的html结构保存到本地文件

3.接下来读取本地文件,对照网页进行定位

import json
import requests
import lxml.etree
from pypinyin import pinyin,Style
from fake_useragent import UserAgent

print('此程序是按照页数进行下载量的下载每页40首音乐')
print('----------------------------------------')
print('操作1.输入需要下载的关键字。2.输入需要下载的数量')
print('--------------------------------------------')
print('                                             ')

muiss_name = input(f'请输入搜索的关键词:')
page_in = int(input(f'请输入需下载的数量:'))

def user_muiss_name(user_name,page):
  
    muiss_pinyin = pinyin(muiss_name,style=Style.NORMAL)#返回的数据类型 [['ni'], ['hao']]
    muiss_json = ''.join([''.join(p) for p in muiss_pinyin])
    url_list = []
    for i in range(1,page_in + 1):
        url = f'你的网址'
        url_list.append(url)
    
    return url_list

def user_html_url(user_muiss):
    for i in user_muiss:
        ua = UserAgent()
        headers = {'User-Agent':ua.random}
        response = requests.get(i,headers=headers)
        html_parser = lxml.etree.HTMLParser()
        html = lxml.etree.fromstring(response.text,parser=html_parser)

        with open('html.text', 'w', encoding='utf-8') as e:
            tree = lxml.etree.ElementTree(html)
            e.write(lxml.etree.tostring(tree, pretty_print=True, method="html", encoding="utf-8").decode())


user_muiss_url = user_muiss_name(user_name=muiss_name,page=page_in)
user_html = user_html_url(user_muiss=user_muiss_url)
*******************************************************************
with open('html.text','r') as e:
    content = e.read()
html_parser = lxml.etree.HTMLParser()
html_tree = lxml.etree.fromstring(content,parser=html_parser)
**************************************************************
接下来就可以使用xpath进行定位提取数据了,因为数据是本地的,所以说就可以慢慢的搞了

由于是在本地文件进行树的提取,就可以多练习几遍,等找到了需要的数据后,在进行爬虫的实战定位就可以了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: XPath (XML Path Language) 是一种在XML文档中查找信息的语言。它是一种路径语言,通过元素和属性的结构来确定其在XML文档中的位置。使用XPath表达式可以选XML文档中的某一部分。 ### 回答2: XPath表达式指的是用于在XML文档中定位节点的一种语法规则。在使用XPath表达式时,需要遵循一定的规则和语法结构,如节点名称、路径、谓词等。如果一个XPath表达式符合这些规则,那么我们可以说这个XPath表达式是正确的。 一个正确的XPath表达式可以帮助我们准确地定位到XML文档中的某个或某些节点,从而实现对这些节点的读、修改、删除等操作。使用XPath表达式可以避免遍历整个XML文档的繁琐过程,提高了操作效率和准确性。 在确定一个XPath表达式是否正确时,我们可以通过使用XPath的解析器或者在编程语言中的XPath引擎进行验证。这些工具可以解析XPath表达式并返回匹配的结果集,如果表达式能够完整地解析并返回结果集,那么我们可以确认这个XPath表达式是正确的。 总结来说,XPath表达式是一种用于定位XML文档中节点的语法规则,如果表达式符合规则并且能够返回正确的结果集,我们可以说这个XPath表达式是正确的。 ### 回答3: XPath表达式是一种用于在XML文档中定位和选择节点的语言。它可以通过指定节点的路径或属性来精确地定位所需的节点,可以用于从复杂的XML结构中提取数据或进行数据筛选。 在使用XPath表达式时,首先需要对XML文档的结构有一定的了解,以便能够准确地描述所需节点的路径。XPath表达式通常以根节点("/")作为起点,然后根据节点名称、属性值、层级关系等条件逐步缩小范围,直到选到目标节点。 验证一个XPath表达式是否正确,通常需要借助XPath表达式评估器或XML解析器来执行。这些工具可以将XPath表达式应用于XML文档,并返回表达式所选择的节点或数据结果。如果能够成功地获到所需的节点或数据,那么就可以确定该XPath表达式是正确的。 需要注意的是,XPath表达式的正确与否决于所应用的XML文档结构和具体需求。有时候,一个XPath表达式可能在某个XML文档上是正确的,而在另一个XML文档上却不适用。因此,在使用XPath表达式时,应根据实际情况进行调试和验证,以确保其准确性和有效性。 总之,XPath表达式是一种强大的工具,能够帮助我们更加便捷地在XML文档中定位和提取所需的数据或节点。只要根据XML文档结构和具体需求正确地编写和应用XPath表达式,就可以获得正确的结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值