使用xpth解析,爬取某网站表情包图片
话不都说,直接上代码
#导入包
import requests
import re
from lxml import etree
import time
#这是程序的主入口
#主要思路就是从网页上爬取图片的url地址,根据这些地址下载保存图片
def main():
Baseurl = 'https://www.fabiaoqing.com/biaoqing/lists/page/'
# 1.爬取网页
data_list = getdata(Baseurl)
#2.下载并保存图片
saveData(data_list)
#第一步就是拿到网页啦,这个url就是要爬取的网页的url
#要更改的地方都标注啦
def askurl(url):
#请求头:要改成自己的。
head = {
"User-Agent": "请输入",
"cookie": "请输入"
}
response = requests.get(url,headers = head)
html = response
return html
#打开网页右键检查就可以看到了,这里面有一些基本信息,不用登陆的网页cookie可以不填
#接下来就是获取图片url了
def getdata(Baseurl):
data_list = []
for i in range(1,50): #爬取的页数范围
print('第'+str(i)+'页')
url = Baseurl + str(i)
print(url)
time.sleep(2)
#这里为了防止网页失去响应,频繁的请求可能报错哦
try:
html = askurl(url)
except:
time.sleep(2)
html = askurl(url)
#print(html)
html_ele = etree.HTML(html.text.encode("utf-8"))
#解析的过程,网页不同这里也要改哦,需要自己去摸索
item = html_ele.xpath('/html/body//div[@class="tagbqppdiv"][contains(@style,"vertical-align: middle;")]')
#print(item)
for i in item :
data = []
picturelink = i.xpath('./ a /img/@data-original')
if len(picturelink) != 0:
picturelink = picturelink[0]
data.append(picturelink)
else:
data.append('')
data_list.append(data)
return data_list
#图片地址拿到啦,可以下载保存啦
#这里的请求头跟上面一样
def saveData(data_list):
head = {
"User-Agent": "请输入",
"cookie": "请输入"
}
print("save...")
for ii in data_list:
file_name = ii[0].split('/')[-1]
print(file_name)
res = requests.get(ii[0],headers = head)
#保存的地址可以自己更改,需要改成自己的
with open(r'D:/biaoqingbao/'+file_name,'wb') as f:
f.write(res.content)
if __name__ == '__main__': # 当程序执行时
main()
print("爬取完毕!")
#下面就是拿到的效果啦
#小白写的不清楚的地方,欢迎大家交流!