本实例实现了抓取淘宝网中以‘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. Linux VPS自动定时备份网站文件和MYSQL数据库到FTP空间(LNMP)

    如果我们网站更新不是很频繁,我们可以定期手动进行备份网站文件和MYSQL数据库导出.如果我们网站数据更新频繁,且数据尤为重要,建议要采用定期自动 备份,至少需要多备份数据,无论我们选择何种优秀的VPS ...

  2. python 使用selenium模块爬取同一个url下不同页的内容(浏览器模拟人工翻页)

    页面翻页,下一页可能是一个新的url 也有可能是用js进行页面跳转,url不变,解决方法是实现浏览器模拟人工翻页 目标:爬取同一个url下不同页的数据(上述第二种情况) url:http://www. ...

  3. IRP小结 0x01 IRP & IO_STACK_LOCATION(结合WRK理解)

    写博客整理记录一下IRP相关的知识点,加深一下印象. 所有的I/O请求都是以IRP的形式提交的.当I/O管理器为了响应某个线程调用的的I/O API的时候,就会构造一个IRP,用于在I/O系统处理这个 ...

  4. Apex辅助 - 透视|自瞄|无后

    Apex辅助 - 透视|自瞄|无后 裙:㈥㈠肆㈥②ээ㈠5免费使用供大家参考裙:㈥㈠肆㈥②ээ㈠5免费使用供大家参考裙:㈥㈠肆㈥②ээ㈠5免费使用供大家参考裙:㈥㈠肆㈥②ээ㈠5免费使用供大家参考裙: ...

  5. 通过SSH去连接 github 和bitbucket

    github 和 bitbucket 都是项目托管服务器, 1 创建SSH private key and public key 首先需要安装git命令, 并且请检查是否有ssh 命令. 打开 Git ...

  6. Visual Studio项目属性的生产平台,如何改为X64?

    如图,我把平台改为x64,可是按打叉,退出后,再进入项目属性,还是 x86,没变. 解决方法: 选择 Setup1项目, 选择"属性" ->选择 "配置管理器&qu ...

  7. JavsScript学习---快速排序

    <script type="text/javascript"> /** * “快速排序”的思想很简单,整个排序过程只需要三步: * (1)在数据集之中,找一个基准点 * ...

  8. Linux系统安装与初用

    1.结合实验尝试,并查阅资料,总结在实验准备中提出的7个问题. (1).Linux的发行版本.内核版本:二者区别与联系. 核心版本主要是Linux的内核,发行版本是各个公司推出的版本,他们与核心版本是 ...

  9. spring 集成redis客户端jedis(java)

    spring集成jedis简单实例   jedis是redis的java客户端,spring将redis连接池作为一个bean配置. “redis.clients.jedis.JedisPool”,这 ...

  10. SQLite 读取数据时,随机顺序

    SELECT * FROM [数据表] ORDER BY random() 通过 random() 这个函数来排序