首页 >> 手游攻略

国精产品W灬源码1688在

大家好,如果您还对国精产品W灬源码1688在不太了解,没有关系,今天就由本站为大家分享国精产品W灬源码1688在的知识,包括利用python爬虫完美采集1688商品数据(完整案例)的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

环境:python3.6目的:根据关键词在淘宝1688平台上搜索商品,并将商品的pid等信息抓取下来。

私信小编01即可获取大量Python学习资料

首先,我们打开首页,输入关键词:女装。↓↓↓

点击找一下,后会跳转到商品页面,如下图所示↓↓↓

这个时候我们就可以看到女装商品分类,和一些推荐商品,

接下来我们不要急着爬这些商品数据,我们要找的是这些商品的分类目录地址。

谷歌浏览器右击检查页面,仔细观察会发现,每个分类的商品都有对应的地址,例如:连衣裙,对应的地址如下

我们进入连衣裙的href标签里面的地址,你会发现页面的标题已经从“女装”变成“女装-连衣裙”了,因为我们在这个页面看到的商品是经过淘宝分类后的,这一页内容只包含“女装-连衣裙”。

通过抓包我们发现,发现这一页的真实的数据来源地址是:

https://s.1688.com/selloffer/rpc_async_render.jsonp?cps=1&n=y&filtOfferTags=279874&filt=y&keywords=%C5%AE%D7%B0&&categoryId=0&n=y&uniqfield=pic_tag_id&templateConfigName=marketOfferresult&pageSize=60&asyncCount=60&async=true&enableAsync=true&rpcflag=new&_pageName_=market&callback=jQuery172015741463935213496_1555383468519&beginPage=1

联系上下文,仔细观察会发现,这是一个可以拼接的url,大致拼接方式如下:???

url='https://s.1688.com/selloffer/rpc_async_render.jsonp?cps=1&n=y&filtOfferTags=279874&filt=y&keywords='+keywords+'&categoryId='+categoryId+'&n=y&uniqfield=pic_tag_id&templateConfigName=marketOfferresult&pageSize=60&asyncCount=60&async=true&enableAsync=true&rpcflag=new&_pageName_=market&callback=jQuery172015741463935213496_1555383468519&beginPage='+str(i)n

其中keywords不难看出是关键词,而且是进行url编码后的,而i这个明显是页码数字,categoryId英语好的一眼就知道是“类别ID”

这些参数是从哪来的呢?

回到前面,我们进入“女装-连衣裙”的页面,并查看源码,搜索这些关键词,

找到了:

接下来的事就简单了,通过填参数拼接url,我们随意可以从女装-连衣裙分类下,获取几十页数据信息,或者从女装-日韩女装分类下获取数据信息。然后通过正则匹配到商品offerid。???

这些offerid代表的就是商品id,例如取出其中一个offerid:556983465623。那么这个商品的完整地址就是:

https://detail.1688.com/offer/556983465623.html

商品的名称、价格、销量、大小参数都可以从这个地址获取到。

下一篇我会教大家如何根据offerid抓取商品详情。

本篇完整代码如下:

???

#encoding:utf-8n"""n本脚本用于根据关键词“女装”爬取1688全部分类商品的offeridn"""nimportrequestsnimportrenimportrandomnfromlxmlimporthtmlnimporttimenn"""获取页面内容"""ndefget_html(url):nhtml=''nforxinrange(5):ntry:nresp=requests.get(url)nhtml=resp.textniflen(html)<1000:ncontinuenelse:nreturnhtmlnexceptExceptionase:nprint('url{0},throwexception:{1}'.format(url,e))nhtml=''nreturnhtmlnn"""从女装首页获取全部的分类地址"""ndefcategory_spider():n#女装:%C5%AE%D7%B0nurl='https://s.1688.com/selloffer/offer_search.htm?keywords=%C5%AE%D7%B0&button_click=top&earseDirect=false&n=y&netType=1%2C11'nhtmlstr=get_html(url)nsection=html.fromstring(htmlstr)nlinks=section.xpath("//div[@class='s-widget-flatcatsm-widget-rowsm-sn-items-controlsm-sn-items-count-dfd-clr']/div[@class='sm-widget-itemsfd-clr']/ul//a/@href")nreturnlinksnn"""从数据源中正则匹配商品的offerid"""ndefspider(url):npid_list=list()nhtmlstr=get_html(url)ngoods_pid=re.findall(r'offerid=.*?(\d+)',htmlstr)nforpidingoods_pid:npid_list.append(pid)nreturnpid_listnnndefmain():n#获取女装商品下的所有分类目录地址:连衣裙、女式T恤、短袖T恤、外贸裙、日韩女装等等nlinks=category_spider()n#遍历所有分类nforlinkinlinks:nsound=get_html(link)n#类别IDncategoryId=re.findall(r'"categoryId":"(\d+)"',sound)[0]n#关键词nkeywords=re.findall(r'"keywordsGbk":"(.*?)"',sound)[0]n#每个类别商品,取10页数据nforiinrange(1,10):nurl='https://s.1688.com/selloffer/rpc_async_render.jsonp?cps=1&n=y&filtOfferTags=279874&filt=y&keywords='+keywords+'&categoryId='+categoryId+'&n=y&uniqfield=pic_tag_id&templateConfigName=marketOfferresult&pageSize=60&asyncCount=60&async=true&enableAsync=true&rpcflag=new&_pageName_=market&callback=jQuery172015741463935213496_1555383468519&beginPage='+str(i)npid_list=spider(url)nprint(pid_list)ntime.sleep(random.randint(1,3))nnif__name__=='__main__':nmain()

代码输出结果展示:

好了,文章到此结束,希望可以帮助到大家。



本文由欣欣吧手游攻略栏目发布,感谢您对欣欣吧的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人站长或者朋友圈,但转载请说明文章出处“国精产品W灬源码1688在

标签: