前言
最近正在学习ppt,为了提高设计能力,需要观察大量ppt模板,顺便拿点素材,但一个个下有点麻烦,所以弄了个爬虫节约时间
一,开头
首先,先获得四个目录的url
发现分类的url在ul标签下的li列表里
那么我们先做个开头
import requests
from utils import get_random_browser
from time import sleep
from lxml import etree
import re
def main():
# 我选择分开来爬
print("请输入你想下载的东西")
s = int(input("1:moban,2:beijing,3:tubiao,4:sucai"))
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36 Edg/86.0.622.38',
# 非持久性连接,避免大量连接
'Connection': 'close'
}
url = "http://www.ypppt.com"
lst= get_http(url,headers,s)
再爬取分类链接
def get_list(url,header, s):
res = requests.get(url,header)
html = etree.HTML(res.text)
# 刚好s参数能对应每个分类的索引,html.xpath返回的是列表,所以要取索引
# attrib就是取属性
html_url = html.xpath(f'/html/body/div[1]/div/ul/li[{s+1}]/a')[0].attrib["href"]
return url + html_url
二,获取目录下的模板链接
发现还是在ul下的li列表里面的a标签,那么做法跟上次一样
代码如下(示例):
def get_url(url,headers,flag):
list = []
#目标url
sleep(1)
res = requests.get(url, headers=headers)
html = etree.HTML(res.text)
html_len = len(html.xpath('/html/body/div[2]/ul/li'))
for i in range(1,html_len-1):
url_xpath = html.xpath(f'/html/body/div[2]/ul/li[{i}]/a[1]')
# print(img_xpath[0].attrib["href"])
url_a = url_xpath[0].attrib