当前位置: 首页 > wzjs >正文

dede wap网站模板下载上海it公司有哪些

dede wap网站模板下载,上海it公司有哪些,企业网站开发项目策划书,公司企业网站建设教程重要知识点 XPath 概述:XPath 是一门可以在 XML 文件中查找信息的语言,也可用于 HTML 文件。它功能强大,提供简洁明了的路径表达式和多个函数,用于字符串、数值、时间比较等。1999 年成为 W3C 标准,常用于爬虫中抓取网…

重要知识点

  • XPath 概述:XPath 是一门可以在 XML 文件中查找信息的语言,也可用于 HTML 文件。它功能强大,提供简洁明了的路径表达式和多个函数,用于字符串、数值、时间比较等。1999 年成为 W3C 标准,常用于爬虫中抓取网页信息。

  • XPath 解析操作:在 Python 中,常用 lxml 模块进行 XPath 解析,该模块底层用 C 语言编写,解析效率高。需通过“pip install lxml”命令安装。

    • 解析 HTML:有 parse()方法用于解析本地 HTML 文件;HTML()方法用于解析字符串类型的 HTML 代码和服务器返回的 HTML 代码。

    • 获取所有节点:使用“//*”获取 HTML 代码中的所有节点。

    • 获取子节点:用“/”获取直接子节点,“//”获取子孙节点。

    • 获取父节点:使用“..”获取一个节点的父节点。

    • 获取文本:用 text()方法获取 HTML 代码中的文本。

    • 属性匹配:使用“[@]”实现节点属性的匹配,包括单属性、多属性匹配以及属性多值匹配。

  • 案例:爬取豆瓣电影 Top250 中的电影信息

    • 分析请求地址:豆瓣电影 Top250 首页有 10 页内容,每页 25 个电影信息。每页的 URL 地址规律为间隔“25”。

    • 分析信息位置:通过浏览器“开发者工具”查看电影名称、导演、主演、电影评分等信息对应的 HTML 代码位置。

    • 爬虫代码实现:使用 requests 模块发送网络请求,lxml 模块中的 XPath 解析器提取电影的相关信息。

相应重要代码

# 导入 etree 子模块
from lxml import etree# 8.2.1 解析本地的 HTML 文件
parser = etree.HTMLParser()
html = etree.parse("demo.html", parser=parser)
html_txt = etree.tostring(html, encoding="utf-8")
print(html_txt.decode('utf-8'))# 8.2.2 解析字符串类型的 HTML 代码
html_str = """
<html><head><title>标题文档</title></head><body><img src="./demo_files/logo1.png" /><br />hello 明日科技</body>
</html>
"""
html = etree.HTML(html_str)
html_txt = etree.tostring(html, encoding="utf-8")
print(html_txt.decode('utf-8'))# 8.2.3 解析服务器返回的 HTML 代码(示例为发送网络请求后解析)
import requests
from requests.auth import HTTPBasicAuth
url = 'http://example.com'
auth = HTTPBasicAuth('admin', 'admin')
response = requests.get(url=url, auth=auth)
if response.status_code == 200:html = etree.HTML(response.text)html_txt = etree.tostring(html, encoding="utf-8")print(html_txt.decode('utf-8'))# 8.2.4 获取所有节点
html_str = """
<div class="level_one on"><ul><li><a href="/index/index/view/id/1.html" title="什么是 Java" class="on">什么是 Java</a></li><li><a href="javascript:" onclick="login(0)" title="Java 的版本">Java 的版本</a></li><li><a href="javascript:" onclick="login(0)" title="Java API 文档">Java API 文档</a></li><li><a href="javascript:" onclick="login(0)" title="JDK 的下载">JDK 的下载</a></li><li><a href="javascript:" onclick="login(0)" title="JDK 的安装">JDK 的安装</a></li><li><a href="javascript:" onclick="login(0)" title="配置 JDK">配置 JDK</a></li></ul>
</div>
"""
html = etree.HTML(html_str)
node_all = html.xpath("//*")
print("数据类型:", type(node_all))
print("数据长度:", len(node_all))
print("数据内容:", node_all)
print("节点名称:", [i.tag for i in node_all])# 8.2.5 获取子节点(直接子节点和子孙节点)
html_str = """
<div class="level_one on"><ul><li><a href="/index/index/view/id/1.html" title="什么是 Java" class="on">什么是 Java</a><a>Java</a></li><li><a href="javascript:" onclick="login(0)" title="Java 的版本">Java 的版本</a></li><li><a href="javascript:" onclick="login(0)" title="Java API 文档"><a>a 节点中的 a 节点</a></a></li></ul>
</div>
"""
html = etree.HTML(html_str)
a_all = html.xpath("//li/a")
print("所有子节点 a:", a_all)
print("获取指定 a 节点:", a_all[1])
a_txt = etree.tostring(a_all[1], encoding="utf-8")
print("获取指定节点 HTML 代码:", a_txt.decode('utf-8'))# 获取子孙节点
a_all = html.xpath("//ul//a")
print("所有子节点 a:", a_all)
print("获取指定 a 节点:", a_all[4])
a_txt = etree.tostring(a_all[4], encoding="utf-8")
print("获取指定节点 HTML 代码:", a_txt.decode('utf-8'))# 8.2.6 获取父节点
html_str = """
<div class="level_one on"><ul><li><a href="/index/index/view/id/1.html" title="什么是 Java" class="on">什么是 Java</a></li><li><a href="javascript:" onclick="login(0)" title="Java 的版本">Java 的版本</a></li></ul>
</div>
"""
html = etree.HTML(html_str)
a_all_parent = html.xpath("//a/..")
print("所有 a 的父节点:", a_all_parent)
print("获取指定 a 的父节点:", a_all_parent[0])
a_txt = etree.tostring(a_all_parent[0], encoding="utf-8")
print("获取指定节点 HTML 代码:\n", a_txt.decode('utf-8'))# 8.2.7 获取文本
html_str = """
<div class="level_one on"><ul><li><a href="/index/index/view/id/1.html" title="什么是 Java" class="on">什么是 Java</a></li><li><a href="javascript:" onclick="login(0)" title="Java 的版本">Java 的版本</a></li></ul>
</div>
"""
html = etree.HTML(html_str)
a_text = html.xpath("//a/text()")
print("所有 a 节点中文本信息:", a_text)# 8.2.8 属性匹配
html_str = """
<div class="video scroll"><div class="level">什么是 Java</div><div class="level">Java 的版本</div>
</div>
"""
html = etree.HTML(html_str)
div_one = html.xpath("//div[@class='level']/text()")
print(div_one)# 多属性匹配
html_str = """
<div class="video_scroll"><div class="level" id="one">什么是 Java</div><div class="level">Java 的版本</div>
</div>
"""
html = etree.HTML(html_str)
div_all = html.xpath("//div[@class='level' and @id='one']/text()")
print(div_all)# 8.2.9 获取属性
html_str = """
<div class="video scroll"><li class="level" id="one">什么是 Java</li>
</div>
"""
html = etree.HTML(html_str)
li_class = html.xpath("//div/li/@class")
li_id = html.xpath("//div/li/@id")
print("class 属性值:", li_class)
print("id 属性值:", li_id)# 8.2.10 按序获取属性值
html_str = """
<div class="video_scroll"><li><a href="javascript:" onclick="login(0)" title="Java API 文档">Java API 文档</a></li><li><a href="javascript:" onclick="login(0)" title="JDK 的下载">JDK 的下载</a></li><li><a href="javascript:" onclick="login(0)" title="JDK 的安装">JDK 的安装</a></li><li><a href="javascript:" onclick="login(0)" title="配置 JDK">配置 JDK</a></li>
</div>
"""
html = etree.HTML(html_str)
li_all = html.xpath("//div/li/a/@title")
print("所有属性值:", li_all)
li_first = html.xpath("//div/li[1]/a/@title")
print("第一个属性值:", li_first)
li_four = html.xpath("//div/li[4]/a/@title")
print("第四个属性值:", li_four)# 使用节点轴获取节点内容(示例为获取 li[2] 所有祖先节点)
html_str = """
<div class="video_scroll"><li><a href="javascript:" onclick="login(0)" title="Java API 文档">Java API 文档</a></li><li><a href="javascript:" onclick="login(0)" title="JDK 的下载">JDK 的下载</a></li><li><a href="javascript:" onclick="login(0)" title="JDK 的安装">JDK 的安装</a></li>
</div>
"""
html = etree.HTML(html_str)
ancestors = html.xpath("//li[2]/ancestor::*")
print("li[2] 所有祖先节点名称:", [i.tag for i in ancestors])# 爬取豆瓣电影 Top250 中的电影信息(部分代码)
from lxml import etree
import time
import random
import requests
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; wow64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36'}def processing(strs):s = ""for n in strs:s = s + "".join(n.split())return sdef get_movie_info(url):response = requests.get(url, headers=header)html = etree.HTML(response.text)div_all = html.xpath("//div[@class='info']")for div in div_all:names = div.xpath("./div[@class='hd']/a//span/text()")name = processing(names)infos = div.xpath("./div[@class='bd']/p/text()")info = processing(infos)score = div.xpath("./div[@class='bd']/div/span[2]/text()")evaluation = div.xpath("./div[@class='bd']/div/span[4]/text()")summary = div.xpath("./div[@class='bd']/p[@class='quote']/span/text()")print("电影名称:", name)print("导演与演员:", info)print("电影评分:", score)print("评价人数:", evaluation)print("电影总结:", summary)print("- -分隔线- -")if __name__ == "__main__":for i in range(0, 250, 25):url = "https://movie.douban.com/top250?start={page}&filter=".format(page=i)get_movie_info(url)time.sleep(random.randint(1, 3))

文章转载自:

http://Xxf7Xyr4.sbdqy.cn
http://yapQEwmH.sbdqy.cn
http://8uRK63e8.sbdqy.cn
http://I9ZRXSxr.sbdqy.cn
http://bZrhoc2v.sbdqy.cn
http://74PXpusW.sbdqy.cn
http://CFrDSWJk.sbdqy.cn
http://rG7rPiGa.sbdqy.cn
http://DcfddVr6.sbdqy.cn
http://FH9zlZ5W.sbdqy.cn
http://itLs5Lyy.sbdqy.cn
http://CvuHZyNZ.sbdqy.cn
http://vxtM2YTB.sbdqy.cn
http://tVySi4R1.sbdqy.cn
http://6L06qq4G.sbdqy.cn
http://ndfGlWiD.sbdqy.cn
http://LnY5TszD.sbdqy.cn
http://4g2ELfRI.sbdqy.cn
http://cU6A32xC.sbdqy.cn
http://UuCeXLo9.sbdqy.cn
http://djWeZamA.sbdqy.cn
http://aC77uyzE.sbdqy.cn
http://skpgUW83.sbdqy.cn
http://mK4xcIeo.sbdqy.cn
http://GJXc8bNE.sbdqy.cn
http://5yPjrrQk.sbdqy.cn
http://wUpKMdWL.sbdqy.cn
http://g0ndfqEZ.sbdqy.cn
http://cc5XYlzb.sbdqy.cn
http://EFgmvI1G.sbdqy.cn
http://www.dtcms.com/wzjs/695974.html

相关文章:

  • 中国建设银行网站个人如何k掉网站
  • 专业足球网站建设如何用visual studio做网站
  • 做移动网站优化快深圳网课
  • 怎么不花钱建网站市场推广专员
  • 东莞网站制作建设收费网站title在哪里
  • 网站网站地图怎么做办公室改造装修公司
  • 垂直类门户网站微信做购物网站怎么抽佣
  • 专业3合1网站建设电话免费查询公司
  • 深圳网站开发的公司电话中小企业网站制作过程中要注意什么
  • 做网站挂广告赚多少钱便宜域名购买
  • 内蒙古城乡住房建设厅网站中文网页设计模板免费下载
  • 请人建设网站 要注意什么济南做网站设计
  • 网站建设可行性报告淘宝做的网站会不会过期
  • 自己做的视频发什么网站哪些网站可以做外部锚文本
  • QQ可以在网站做临时会话么wordpress帐号重置
  • 门户网站首页模板wordpress不在新窗口打
  • 专门做中式装修的网站2017网站建设
  • 晋江网站建设晋江西安模板网站
  • 电子商务网站建设的目的是开展网络营销做淘宝这样的网站需要什么
  • 门户网站建设方案招标文件黄石公司做网站
  • 美容医疗 网站建设网站设计介绍演讲模板下载
  • 李沧网站建设电话大岭山营销型网站建设
  • 去哪里找人做网站绵阳网页制作公司
  • 小猫济南网站建设公司wordpress themememe wpex
  • jn建站系统官网爱心捐赠网站怎么做
  • 佛山营销网站建设服务公司网站推广公司官网
  • 资讯网站的优势医院网站建设 利法拉网络
  • 佛山贸易网站建设wordpress主题 自适应
  • 汕头网站关键词排名深圳网络推广怎么做
  • 用google翻译做多语言网站wordpress模板 购买