过时的淘宝数据爬取

为了整理一下以前的项目,将以前编写的爬虫程序上传。此项目为爬取淘宝上笔记本电脑价格、详细参数、销量等数据而编写。初期有效,但随后淘宝设立了相应反爬虫程序,此爬取方法已经失效。
此爬取过程分两步,其一是爬取搜索页面所有的商品与其链接地址

import re
import xlwt
import time 
import requests
import pandas as pd
from retrying import retry
from concurrent.futures import ThreadPoolExecutor
start = time.clock()
plist = []
for i in range(1, 101):
    j = 44 * (i-1)
    plist.append(j)
listno = plist
datatmsp = pd.DataFrame(columns=[])

@retry(stop_max_attempt_number = 8)
def network_programming(num):
    url = 'https://s.taobao.com/search?q=%E5%8F%A3%E7%BA%A2&imgfile=&js=1&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20180724&ie=utf8&bcoffset=3&ntoffset=3&p4ppushleft=1%2C48&s=' + str(num)
    web = requests.get(url)
    web.encoding = 'utf-8'
    return web
def multithreading():
    number = listno
    event = []
    with ThreadPoolExecutor(max_workers=10) as executor:
        for result in executor.map(network_programming, number, chunksize=10):
             event.append(result)
    return event
listpg = []
event = multithreading()
for i in event:
    json = re.findall(
    '"auctions":(.*?),"recommendAuctions"', i.text)
    if len(json):
        table = pd.read_json(json[0])
        datatmsp = pd.concat([datatmsp, table],
                                axis=0, ignore_index=True)
        pg = re.findall(
        '"pageNum":(.*?),"p4pbottom_up"', i.text)[0]
        listpg.append(pg)
        print(datatmsp)
        print(listpg)
print(datatmsp)
datatmsp.to_excel('D:/python/data1.xls',index=False)

其二是在搜索原来地址后按地址爬取详细信息。

import xlrd
import xlwt
import os
import re
import pandas as pd
os.chdir('D:\python')
from requests_html import HTMLSession
session=HTMLSession()
import requests
workbook=xlrd.open_workbook(r'data_laptop7.27.xls')
sheet1=workbook.sheet_by_name('Sheet1')
cols=sheet1.col_values(13)
a=[]
datatmsp=pd.DataFrame(columns=[])
for i in range(1,2400):
    url='https:'+str(cols[i])
    r=requests.get(url)
    r.encoding='utf-8'
    json=re.findall('"data":(.*?),"pager"',r.text)
    if len(json):
        try:
            medium=json[0]
            del json
            n=medium.find('"data":')
            medium='['+medium[n+7:-1]+']'
            table=pd.read_json(medium,typ='dataframe')
            datatmsp=pd.concat([datatmsp,table],axis=0,ignore_index=True)
            print(i)
        except:
            print(i)
print(datatmsp)
datatmsp.to_excel('D:/python/data_laptop_append8.25.xls',index=False

此代码略显繁琐,爬取速率较慢,为我写爬虫的首次尝试。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

idiotic_bird

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值