Python第三天

使用xpath语法提取本地html文件的内容

安装lxml库

# pip install lxml
from lxml import html
# with open('路径', '模式', '编码') as f:
 f.write('写入的内容')
 f.read() # 读取模式

读取本地的html文件

with open('index2.html', 'r', encoding='utf-8') as f:
   html_data = f.read()
   # print(html_data)

提取h1标题中的内容

selector = html.fromstring(html_data)

/ 代表根节点

获取标签的内容需要在路径末尾增加/text()

h1 = selector.xpath('/html/body/h1/text()')
print(h1)

获取标签内容语法形式

//标签1[@属性="属性值"]/标签2[@属性="属性值"]/.../text()

// 代表从任意位置开始

获取a标签的内容

a = selector.xpath('//div[@id="container"]/a/text()')
print(a)

获取标签属性语法形式

//标签1[@属性="属性值"]/标签2[@属性="属性值"]/.../@属性名

link = selector.xpath('//div[@id="container"]/a/@href')
print(link)

当当网图书爬虫

import requests
from lxml import html

获取目标站点的源代码

url = 'http://search.dangdang.com/?key=9787115428028&act=input'
html_data = requests.get(url).text

xpath提取

selector = html.fromstring(html_data)

获取所有图书的价格

 price = selector.xpath('//div[@id="search_nature_rg"]/ul/li[1]/p[3]/span[1]/text()')
 print(price)
ul_lsit = selector.xpath('//div[@id="search_nature_rg"]/ul/li')
print(len(ul_lsit))

遍历

for li in ul_lsit:

价格

    price = li.xpath('p[3]/span[1]/text()')
    print(price)

书名

购买链接

店铺名称

当当网图书爬虫

import requests
from lxml import html
import pandas as pd
def spider(isbn):
    book_list = []

获取目标站点的源代码

如何格式化字符串 format方法

  url = 'http://search.dangdang.com/?key={}&act=input'.format(isbn)
  html_data = requests.get(url).text

xpath提取

 selector = html.fromstring(html_data)
 ul_lsit = selector.xpath('//div[@id="search_nature_rg"]/ul/li')
    print('共有{}家售卖此书'.format(len(ul_lsit)))

遍历

for li in ul_lsit:

价格

    price = li.xpath('p[3]/span[1]/text()')[0]
    price = price.replace('¥', '')
    price = float(price)

书名

        book_name = li.xpath('p[@class="name"]/a/@title')[0]

购买链接

      link = li.xpath('p[@class="name"]/a/@href')[0]

店铺名称

   store = li.xpath('p[@cla
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容