使用python异步爬取淘宝大量商品的价格,并生成excel文件_python抓取淘宝商品信息导出excel(1)

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
img
img

如果你需要这些资料,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

在编写代码之前,我们需要先获得user-agent和cookie。先打开浏览器访问淘宝网,然后按 f12 进入开发者模式,如果什么也没有就按 f5 刷新一下,
在这里插入图片描述
点击后,会看到cookie,再往下会看到user-agent。
在这里插入图片描述把他们复制下来,没有cookie和user-agent爬虫就无法爬取信息。

import aiohttp
import re
import asyncio
sem=asyncio.Semaphore(10)#信号量,控制协程数,防止爬的过快
header={"user-agent":"","Cookie":''}#header字典的value为刚刚复制的的user-agent和cookie

async def getExcel(url,header):
    async with sem:
        async with aiohttp.ClientSession() as session:
            async with session.request('GET',url,headers=header) as result:
                try:
                    info=[]#定义一个列表,用于存储商品名称和价格
                    text=await result.text()#异步获得页面信息
                    GoodsNames=re.findall(r'\"raw\_title\"\:\".\*?\"',text)#使用正则表达式获取页面的商品名
                    GoodsPrices=re.findall(r'\"view\_price\"\:\"[\d\.]\*\"',text)#使用正则表达式获取页面商品的价格
                    #将该页面的商品名称和价格保存到info列表中
                    for i in range(len(GoodsNames)):
                        try:
                            GoodsName=eval(GoodsNames[i].split(':')[1])
                            GoodsPrice=eval(GoodsPrices[i].split(':')[1])
                            info.append([GoodsName,GoodsPrice])
                        except:
                            info.append(['',''])
                except:
                    pass
                #将保存有商品信息的info列表写入csv文件,注意文件的打开模式一定要为'a',否则下一页面输入文件的新内容将覆盖本页面输入文件的内容。
                f=open('goods\_info.csv','a',encoding='utf-8')
                for every in info:
                    f.write(','.join(every)+'\n')
        

def main(header):
    goods=input('请输入想检索的商品:')
    num=eval(input('请输入想检索的页面数:'))
    start_url='https://s.taobao.com/search?q=' + goods
    url_lst=[]
    #生成要爬取的多个页面的url列表
    for i in range(num):
        url_lst.append(start_url+'&s='+str(44\*i)) 
    loop=asyncio.get_event_loop()#获取事件循环
    tasks=[getExcel(url,header) for url in url_lst]#生成任务列表
    loop.run_until_complete(asyncio.wait(tasks))#激活协程

if __name__=='\_\_main\_\_':
    main(header)          


img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

,并且后续会持续更新**

如果你需要这些资料,可以戳这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值