本实例实现了抓取淘宝网中以‘python’为关键字的搜索结果,经详细查看数据存储于html文档中的js脚本中,数据类型为JSON

具体实现代码如下:

import requests
import re
import json
from urllib.parse import urlencode
from bs4 import BeautifulSoup
finalstr = ''
count = 0 #初始化页码对应参数,0为首页
test = 0 #初始化数据总条数
for j in range(0,100): #共搜索100页数据
count = 44*j #每跳一页参数值增加44
data = {
'q':'python',
'imgfile':'',
'js':'',
'stats_click':'search_radio_all:1',
'initiative_id':'staobaoz_20170529',
'ie':'utf8',
'bcoffset':'',
'ntoffest':'',
'p4ppushleft':'1,48',
's':count
} #浏览器地址的get参数,只有's'会随着页码改变而改变
url = 'https://s.taobao.com/search?' + urlencode(data) #浏览器地址
req = requests.get(url)
pattern = re.compile('g_page_config = (.*?);\n g_srp_loadCss()') #正则表达式匹配数据
result = pattern.search(req.text)
# result.group(1)
jsres = json.loads(result.group(1)) #匹配后获得的json数据深度比较大,需要层层剖析
sedata = jsres['mods'][ 'itemlist']['data']['auctions'] #经过剖析后的json数据
for i in range(0,len(sedata)):
rt = '标题:'+sedata[i]['raw_title']+'\n'
finalstr += rt
rp = '价格:'+sedata[i]['view_price']+'\n'
finalstr += rp
rn = '卖家:'+sedata[i]['nick']+'\n'
finalstr += rn
rd = '地址:'+sedata[i]['item_loc']+'\n\n'
finalstr += rd
print('当前正在读取第'+str(j+1)+"页的第"+str(i+1)+'条数据...')
test += 1
f = open('淘宝搜索python时的商品数据,共'+str(test)+'条.txt','w',1,'UTF-8') #保存数据到TXT
f.write(finalstr)
print('正在保存。。。')
f.close()
print('保存完毕!共'+str(test)+'条数据')

Python实例之抓取淘宝商品数据(json型数据)并保存为TXT的更多相关文章

  1. Python爬虫,抓取淘宝商品评论内容!

    作为一个资深吃货,网购各种零食是很频繁的,但是能否在浩瀚的商品库中找到合适的东西,就只能参考评论了!今天给大家分享用python做个抓取淘宝商品评论的小爬虫! 思路 我们就拿"德州扒鸡&qu ...

  2. Python实例之抓取网易云课堂搜索数据(post方式json型数据)并保存到数据库

    本实例实现了抓取网易云课堂中以‘java’为关键字的搜索结果,经详细查看请求的方式为post,请求的结果为JSON数据 具体实现代码如下: import requests import json im ...

  3. Python实例之抓取HTML中的数据并保存为TXT

    本实例实现了抓取捧腹网中存储于html中的笑话数据(非JSON数据) 通过浏览器相关工具发现捧腹网笑话页面的数据存储在HTML页面而非json数据中,因此可以直接使用soup.select()方法来抓 ...

  4. 爬取淘宝商品数据并保存在excel中

    1.re实现 import requests from requests.exceptions import RequestException import re,json import xlwt,x ...

  5. selenium抓取淘宝数据报错:warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless

    ssh://root@192.168.33.12:22/root/anaconda3/bin/python3 -u /www/python3/maoyantop100/meishi_selenium. ...

  6. python+selenium+chromedriver抓取shodan搜索结果

    作用:免积分抓取shodan的搜索结果,并把IP保存为txt 前提: ①shodan会员(ps:黑色星期五打折) ②安装有python27 ③谷歌浏览器(ps:版本一定要跟chromedriver匹配 ...

  7. 简单的抓取淘宝关键字信息、图片的Python爬虫|Python3中级玩家:淘宝天猫商品搜索爬虫自动化工具(第一篇)

    Python3中级玩家:淘宝天猫商品搜索爬虫自动化工具(第一篇) 淘宝改字段,Bugfix,查看https://github.com/hunterhug/taobaoscrapy.git 由于Gith ...

  8. Python爬虫实战四之抓取淘宝MM照片

    原文:Python爬虫实战四之抓取淘宝MM照片其实还有好多,大家可以看 Python爬虫学习系列教程 福利啊福利,本次为大家带来的项目是抓取淘宝MM照片并保存起来,大家有没有很激动呢? 本篇目标 1. ...

  9. python(27) 抓取淘宝买家秀

    selenium 是Web应用测试工具,可以利用selenium和python,以及chromedriver等工具实现一些动态加密网站的抓取.本文利用这些工具抓取淘宝内衣评价买家秀图片. 准备工作 下 ...

随机推荐

  1. solrcloud jsonfacet分组聚合 unique计数不准确

    jsonfacet分组聚合查询 unique.hll函数问题: 对不同的值进行估算,并非准确的值, 优点:节省内存消耗,用分组算法对不同的值count进行估算 缺点:无法准确统计count(disti ...

  2. 阿里规范学习总结-不要再foreach对元素进行add()/remove()操作,

    在foreach循环中,对元素进行 remove()/add() 操作需要使用Iterator ,如果运行在多线程环境下,需要对Iterator对象枷锁. public class ForeachTe ...

  3. ResNet网络再剖析

    随着2018年秋季的到来,提前批和内推大军已经开始了,自己也成功得当了几次炮灰,不过在总结的过程中,越是了解到自己的不足,还是需要加油. 最近重新复习了resnet网络,又能发现一些新的理念,感觉很f ...

  4. pytest自动化3:fixture之conftest.py实现setup

    出处:https://www.cnblogs.com/yoyoketang/p/9390073.html 前言: 前面一篇讲到用例加setup和teardown可以实现在测试用例之前或之后加入一些操作 ...

  5. gulp的使用(一)之gulp的基础了解

    Gulp是一个工具.用于项目构建. Gulp简介: 多个开发者共同开发一个项目,每位开发者负责不同的模块,这就会造成一个完整的项目实际上是由许多的“代码版段”组成的: 使用less.sass等一些预处 ...

  6. VmwareTools以及搜狗拼音的安装

    已经那么多年工作下来了,结果装linux还是那么 的费劲! 装的是纯净版Ubuntu16.04版本,17.04怕不稳定就没装, 装了发现VmwareTools是暗的,以前也遇到过这个问题,但是真的忘记 ...

  7. 2018 ,请领取您Power BI 年终报告

    Power BI365 3Jan 2019 新年已至,岁寒温暖! 为方便Power BI用户们能快速找到所需要的Power BI各类型文章,小悦将2018年Power BI的所有精彩文章按照各应用场景 ...

  8. 使用java输出helloworld

    public class tset{ public static void main(String[] args)( System.out.println(helloworld); ) }

  9. 联想Y410P在Ubuntu系统下开关机及插耳机破音“啪啪”的解决办法

    转载自:https://blog.csdn.net/YiKangJ/article/details/81239556 1.解决开关机“啪啪响”: options snd-hda-intel model ...

  10. uniapp如何将微信小程序API封装为Promise

    var SYNC_API_RE = /requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$/; var CALL ...