html解析(etree.xpath、BeautifulSoup和pyquery )

2021-05-28 12:01

阅读:621

标签:现在   编码   https   lin   odi   字符串   文件导入   strong   http   

etree.xpath 使用

参考网站:https://www.w3school.com.cn/xpath/xpath_functions.asp

第1步导入lxml模块

第2步 初始化准备要用处理的文件或者字符串

第3步,按照各种规则来提取第2步已经处理好的html

第一种:利用现有的html文件导入

from
lxml import etree html = etree.parse(./maoyan.html,etree.HTMLParser(encoding=utf-8)) //利用现有的html文件导入,使用方法 result01 = html.xpath(//i/ancestor::dd)

第2种,利用代码中的定义的text

text = ‘‘‘
    
            
  • first item
  •         
  • second item
  •         
  • third item
  •         
  • fourth item
  •         
  • fifth item
  •     
    ‘‘‘

    html = etree.HTML(text) //直接使用初始化已经有的text

    result = etree.tostring(html )
    print(result.decode(‘utf-8‘))

     

    BeautifulSoup

    参考网站:https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/#id14

    第1步,导入BeautifulSoup

    第2步,初始化准备要用处理的文件或者字符串

    第3步,按照各种规则来提取第2步已经处理好的html

    
    
    两种构造方法:
    
    soup = BeautifulSoup(open("index.html"))
    
    soup = BeautifulSoup("data")

    from

    bs4 import BeautifulSoup
    #使用已经有的html来处理,建议使用
    open先打开html,因为如果有中文字符的话,直接打开的话会出现中文乱码问题
    html = open(maoyan.html,r,encoding=utf-8) 
    soup
    = BeautifulSoup(html,lxml)
      print(type(soup.div.div.div.div.div.contents))

    pyquery 

    参考网站:https://pyquery.readthedocs.io/en/latest/index.html

     

    第1步,

    导入from pyquery import PyQuery as pq

    第2步:初始化需要处理要用处理的文件或者字符串

    第3步,按照各种规则来提取第2步已经处理好的html

    构造方法:
     from pyquery import PyQuery as pq
     from lxml import etree
     import urllib

      1、直接字符串

      doc = pq("")   pq 参数可以直接传入 HTML 代码,doc 现在就相当于 jQuery 里面的 $ 符号了

      2、lxml.etree

      doc = pq(etree.fromstring(""))

      可以首先用 lxml 的 etree 处理一下代码,这样如果你的 HTML 代码出现一些不完整或者疏漏,都会自动转化为完整清晰结构的 HTML代码。

      3、直接传URL

      doc = pq(‘http://www.baidu.com‘)

      这里就像直接请求了一个网页一样,类似用 urllib2 来直接请求这个链接,得到 HTML 代码

      4、传文件

      doc = pq(filename=‘hello.html‘)可以直接传文件名

    说明:

    # 读取文件内容初始化,编码格式为GBK,当有不可识别字符时会报错,可通过open指定编码格式为utf-8来解决
    html = open(‘maoyan.html‘,‘r‘,encoding=‘utf-8‘)
    doc = pq(html.read())
    print(doc(‘dd‘))
     

     

    html解析(etree.xpath、BeautifulSoup和pyquery )

    标签:现在   编码   https   lin   odi   字符串   文件导入   strong   http   

    原文地址:https://www.cnblogs.com/yintian908/p/14771544.html


    评论


    亲,登录后才可以留言!