吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 11431|回复: 103
收起左侧

[Python 转载] 学了一个多月python了,是骡子是马也该牵出来溜溜了

  [复制链接]
全村儿人希望 发表于 2018-11-9 00:12
用Scrapy写的淘宝商品搜索爬虫,写的不好大佬勿喷

[Python] 纯文本查看 复制代码
# -*- coding: utf-8 -*-


import scrapy
import json
from Taobao.items import TaobaoItem
# url编码
from urllib.parse import quote
# url解码
from urllib.parse import unquote


class TaobaoSpider(scrapy.Spider):
    name = 'taobao'
    # allowed_domains = ['taobao.com/']
    page = input('请输入打印页数:')
    Quote = input('请输入要搜索的商品名')
    start_urls = ['https://ai.taobao.com/search/getItem.htm?_tb_token_=e3d450b1e33e&__ajax__=1&pid=mm_33793785_3431230_471812702&unid=&clk1=&page={}&pageSize=60&pvid=200_11.224.194.119_358_1541678031255&squareFlag=&sourceId=search&ppathName=&supportCod=&city=&ppath=&dc12=&pageNav=false&itemAssurance=&fcatName=&price=&cat=&from=&tmall=&key={}&fcat=&ppage=0&debug=false&maxPageSize=200&sort=&exchange7=&custAssurance=&postFree=&npx=50&location='.format(int(page),quote(Quote,'utf-8'))]
    a = 1



    def parse(self, response):
        js = json.loads(response.body)['result']['auction']

        f = open('{}.csv'.format(self.Quote), 'w', encoding='utf-8')
        f.write("商品名,价格,店名\n")

        for text in js:
            dict = {
                'name' : text['description'],
                'nick' : text['nick'],
                'realPrice' : text['realPrice'],
            }

            f.write("{name},{realPrice},{nick}\n".format(**dict))

            origPicUrl = 'https:' + text['origPicUrl']
            item = TaobaoItem()
            item['origPicUrl'] = origPicUrl

            yield item

        f.close()



        if self.page != '1':
            for n in range(2,int(self.page)):
                yield scrapy.Request('https://ai.taobao.com/search/getItem.htm?_tb_token_=e3d450b1e33e&__ajax__=1&pid=mm_33793785_3431230_471812702&unid=&clk1=&page={}&pageSize=60&pvid=200_11.224.194.119_358_1541678031255&squareFlag=&sourceId=search&ppathName=&supportCod=&city=&ppath=&dc12=&pageNav=false&itemAssurance=&fcatName=&price=&cat=&from=&tmall=&key=python%E7%BC%96%E7%A8%8B%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E5%AE%9E%E6%88%98&fcat=&ppage=0&debug=false&maxPageSize=200&sort=&exchange7=&custAssurance=&postFree=&npx=50&location='.format(n),self.parse)
            print('=' * 40 + '第' + self.page + '页下载完毕' + '=' * 40)



X1C4B)EY40SWE7V12X79(}7.png [(L[HU0MAJ9[Y_PQ7{L3G_A.png

json源码里的商品名有很多英文加中文,不会吧中文提取出来,有没有大佬能指点一二的

免费评分

参与人数 7吾爱币 +7 热心值 +3 收起 理由
老号530530 + 1 + 1 白学了,开着飞机去买菜了
xlose13720 + 1 结果拉出来这是什么,应该高端点,爬汤不热之类的
wm121036 + 1 你这都爬的啥。。
平淡最真 + 1 [\u4e00-\u9fa5] 正则中文匹配
纸条 + 1 不是爬淘宝 就是 知乎 豆瓣 京东 能不能来个新颖的
tail88 + 1 + 1 大神你都爬的什么?
iteamo + 2 求你自学的资源,我也学学

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

squall007 发表于 2018-11-9 08:20
本帖最后由 squall007 于 2018-11-9 09:00 编辑

那是商品描述,不是商品名称,用正则替换:

以下代码需要手动复制
[Python] 纯文本查看 复制代码
import re
desc='低至6895起/苹果x/送壳膜Apple/苹果 <span class=H>iPhone</span> X 全网通4G手机国行正品10苹果x <span class=H>iphone</span>x 3/6/12期分期'
desc=re.sub(r'<.+?>','',desc)
print(desc)
 楼主| 全村儿人希望 发表于 2018-11-17 07:42
lupeng-1985 发表于 2018-11-16 14:27
一个月学的太快了 ,求教啊    我学了也快一个月了 因为白天上班,晚上就学一个多小时  到现在 只会最简单 ...

我上班也在学的,工作比较轻松,上班跟着视频看着学,下班回家电脑操作
fx9156 发表于 2018-11-9 00:17
威风的黑龙 发表于 2018-11-9 00:30
这提取出来有啥用没
 楼主| 全村儿人希望 发表于 2018-11-9 00:30
fx9156 发表于 2018-11-9 00:17
买的书还是看的视频?

看的电子书 + 视频自学的
 楼主| 全村儿人希望 发表于 2018-11-9 00:31
威风的黑龙 发表于 2018-11-9 00:30
这提取出来有啥用没

没啥大用
头像被屏蔽
coradong1985 发表于 2018-11-9 00:51 来自手机
提示: 作者被禁止或删除 内容自动屏蔽
虚无空幻 发表于 2018-11-9 01:29
py的话,我感觉还是用来数据绘图吧.采集我个人用c++ curl足够了. 感觉采集就那点代码,没什么不同....
tfrist 发表于 2018-11-9 01:56
鼓励一下
差池 发表于 2018-11-9 05:03
正则表达式
Fade 发表于 2018-11-9 05:11
努力共勉
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 23:43

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表