爬虫初体验,再也不用担心斗图没有表情包了!

使用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("爬取完毕!")

#下面就是拿到的效果啦在这里插入图片描述
#小白写的不清楚的地方,欢迎大家交流!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值