京东搜索页爬虫商品店铺信息


工作需要需获取京东商品信息,自己研究了下,有不对的请指正
代码运行结果如图
在这里插入图片描述

1.写好整个爬虫框架

  depth=2	#搜索几页
  skulist=[]	#用来存储获取的信息
  for i in range(depth):
      try:
          url='https://search.jd.com/Search?keyword=内裤&page='+str(i)		#爬取的链接
          html=gethtml(url)		#获取网页源代码,详见第二步
          put=getre(skulist,html)		#从源代码中获取所需信息,详见第三步
      except:
          continue
  outputxls(skulist)		#将获取的信息存入excel中,并保存到电脑相应位置,详见第四步

2.用requests库获取网页源代码

import requests
def gethtml(html):
    try:
        r=requests.get(html)
        r.raise_for_status
        r.encoding=r.apparent_encoding
        return r.text
        print(r.text)
    except:
        print("源代码获取失败")

3.正则表达式获取需要的相关信息

import re
def getre(skulist,html):
	#用正则匹配店铺名、价格、商品链接、主图
    shop_list=re.findall('title=".*?">(.*?)</a></span>',html)
    price_list=re.findall('<em>¥</em><i>(.*?)</i>',html)
    url_list=re.findall('data-url="(.*?)"\s*data-presale',html)
    pic_list=re.findall('<img width="220" height="220" data-img="1" src="(.*?)" data-lazy-img',html)
    #将匹配到的信息装进skulist列表中
    for i in range(len(shop_list)):
        shop=shop_list[i]
        price=price_list[i]
        url=url_list[i]
        pic=pic_list[i]
        skulist.append([shop,price,url,pic]) 

4.把获取的信息写入excel中并保存到电脑

import os
import xlwt
def outputxls(put):
	#创建excel文件,sheet名为info
    workbook_info=xlwt.Workbook() 
    sheet_info=workbook_info.add_sheet('info')
    m=1
    #将skulist中的信息按行列写进excel文件中
    for num in range(len(put)):
        for i in range(len(put[num])):
            sheet_info.write(num,i,label=put[num][i])
        m+=1
    #将文件保存到c盘,文件名为list
    workbook_info.save(r'c:\list.xls')
   

完整代码

import requests
import re
import os
import xlwt
def gethtml(html):
    try:
        r=requests.get(html)
        r.raise_for_status
        r.encoding=r.apparent_encoding
        return r.text
        print(r.text)
    except:
        print("源代码获取失败")
        
def getre(skulist,html):
    shop_list=re.findall('title=".*?">(.*?)</a></span>',html)
    price_list=re.findall('<em>¥</em><i>(.*?)</i>',html)
    url_list=re.findall('data-url="(.*?)"\s*data-presale',html)
    pic_list=re.findall('<img width="220" height="220" data-img="1" src="(.*?)" data-lazy-img',html)
    for i in range(len(shop_list)):
        shop=shop_list[i]
        price=price_list[i]
        url=url_list[i]
        pic=pic_list[i]
        skulist.append([shop,price,url,pic]) 

def outputxls(put):
    workbook_info=xlwt.Workbook() 
    sheet_info=workbook_info.add_sheet('info')
    m=1
    for num in range(len(put)):
        for i in range(len(put[num])):
            sheet_info.write(num,i,label=put[num][i])
        m+=1
    workbook_info.save(r'c:\list.xls')
    

depth=2
skulist=[]
for i in range(depth):
    try:
        url='https://search.jd.com/Search?keyword=内裤&page='+str(i)
        html=gethtml(url)
        put=getre(skulist,html)
    except:
        continue
outputxls(skulist)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值