如果做微商需不需要开个网站,深圳google推广,wordpress集成dz,长沙网建站一、环境配置
1、安装xpath
下载地址#xff1a;百度网盘 请输入提取码
第一步#xff1a;
下载好文件后会得到一个没有扩展名的文件#xff0c;重命名该文件将其改为.rar或者.zip等压缩文件#xff0c;解压之后会得到一个.crx文件和一个.pem文件。新建一个文件夹…一、环境配置
1、安装xpath
下载地址百度网盘 请输入提取码
第一步
下载好文件后会得到一个没有扩展名的文件重命名该文件将其改为.rar或者.zip等压缩文件解压之后会得到一个.crx文件和一个.pem文件。新建一个文件夹将这两个文件放在该文件夹本人将其命名为xpath-helper内。
第二步
将.crx文件重命名改为.rar或.zip文件解压在xpath-helper文件夹中解压后会得到许多文件如下图 第三步
打开Chrome浏览器进入扩展程序页面选择右上角的开发者模式之后点击左上角的加载已解压的扩展程序选择xpath-helper文件夹这样在浏览器中就会出现XPath-Helper了。 2、安装lxml的库
想要使用xpath我们还必须安装一个名为lxml的库这个库安装的目录必须在python的解释器路径下。
首先我们查看python解释器的路径。打开pycharm -- file --settings --Project
点击加号直接搜索安装或者命令行安装
pip install lxml 二、xpath基本语法
1、基础语法 1. 路径查询 //查找所有子孙节点不考虑层级关系 / 找直接子节点 2. 谓词查询 //div[id] //div[idmaincontent] 3. 属性查询 //class 4. 模糊查询 //div[contains(id, he)] //div[starts‐with(id, he)] 5. 内容查询 //div/h1/text() 6. 逻辑运算 //div[idhead and classs_down] //title | //price 新建一个HTML
!DOCTYPE html
html langen
headmeta charsetUTF-8/titleTitle/title
/head
bodyulli idl1 classc1北京/lili idl2上海/lili idc3深圳/lili idc4武汉/li/ul/body
/html
编写python文件
from lxml import etree# lxml解析本地文件 etree.parse(XX.html)
# lxml解析服务器响应文件 etree.HTML(response.read().decode(utf‐8)
tree etree.parse(1.html)# tree.xpath(xpath路径)# 查找ul下面的li
li_list tree.xpath(//body/ul/li)# 查找所有有id属性的li标签
# text() 获取标签中的内容
li_list tree.xpath(//ul/li[id]/text())# 找到id为l1的li标签 注意引号的问题
li_list tree.xpath(//ul/li[idl1]/text())# 查找到id位l1的li标签的class的属性值
li tree.xpath(//ul/li[idl1]/class)# 查询id中包含l的li标签
li_list tree.xpath(//ul/li[contains(id,l)]/text())# 查询id的值以c开头的li标签
li_list tree.xpath(//ul/li[starts-with(id,c)]/text())# 查询id为l1和class为c1的li标签
li_list tree.xpath(//ul/li[idl1 and classc1]/text())#查询id为l1或id为l2的li标签
li_list tree.xpath(//ul/li[idl1]/text() | //ul/li[idl2]/text())# 判断列表的长度
print(li_list)
print(len(li_list))
2、案例爬取站长素材网上的前十页照片
# (1) 请求对象的定制
# 2获取网页的源码
# 3下载# 需求 下载的前十页的图片
# https://sc.chinaz.com/tupian/qinglvtupian.html 1
# https://sc.chinaz.com/tupian/qinglvtupian_page.htmlimport urllib.request
from lxml import etreedef create_request(page):if(page 1):url https://sc.chinaz.com/tupian/qinglvtupian.htmlelse:url https://sc.chinaz.com/tupian/qinglvtupian_ str(page) .htmlheaders {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36,}request urllib.request.Request(url url, headers headers)return requestdef get_content(request):response urllib.request.urlopen(request)content response.read().decode(utf-8)return contentdef down_load(content):
# 下载图片# urllib.request.urlretrieve(图片地址,文件的名字)tree etree.HTML(content)name_list tree.xpath(//div[classitem]//img/alt)# 一般设计图片的网站都会进行懒加载src_list tree.xpath(//div[classitem]//img/data-original)print(src_list)for i in range(len(name_list)):name name_list[i]src src_list[i]url https: srcurllib.request.urlretrieve(urlurl,filename./loveImg/ name .jpg)if __name__ __main__:start_page 1end_page 10for page in range(start_page,end_page1):# (1) 请求对象的定制request create_request(page)# 2获取网页的源码content get_content(request)print(content)with open(爬虫_解析_站长素材.html,w,encodingutf-8)as fp:fp.write(content)# 3下载down_load(content)