python定向爬虫之淘宝商品比价

import requests
import re# 由于直接用re库findall函数直接匹配,所以直接跳过网页解析,故不用BeautifulSoup库
# 淘宝网页提取
def getHTMLText(url):try:  # 由于淘宝的防爬虫,所以将request对象中相应替换为以下headers,paramsheaders = {'authority': 's.taobao.com','cache-control': 'max-age=0','sec-ch-ua': '"Chromium";v="94", "Microsoft Edge";v="94", ";Not A Brand";v="99"','sec-ch-ua-mobile': '?0','sec-ch-ua-platform': '"Windows"','upgrade-insecure-requests': '1','user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36 Edg/94.0.992.38','accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9','sec-fetch-site': 'same-origin','sec-fetch-mode': 'navigate','sec-fetch-user': '?1','sec-fetch-dest': 'document','referer': 'https://s.taobao.com/search?q=%E6%9C%BA%E8%BD%A6%E7%9A%AE%E8%A1%A3%E7%94%B7&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.jianhua.201856-taobao-item.2&ie=utf8&initiative_id=tbindexz_20170306&hintq=1','accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6','cookie': 'cna=OMhiGRd+/AICAd0LFGYLoihm; hng=CN%7Czh-CN%7CCNY%7C156; thw=cn; tracknick=24%5Cu5C0F%5Cu5148%5Cu751F%5Cu7684; enc=UV4uq00pRvAS115Dn7DthWOwe5D6AV9nHQXsVJch3hCixytTM%2Bnfkk3MPgv5mvNKP1kKe11aMri5gJujKX2Iuw%3D%3D; x=e%3D1%26p%3D*%26s%3D0%26c%3D0%26f%3D0%26g%3D0%26t%3D0; _uab_collina=163082781604428076180674; t=81d7616e71cef921f6e94e7cb2efd9bc; _m_h5_tk=666c5a1d9aad7068d38f9a0d00ce0909_1634103946468; _m_h5_tk_enc=e4b707ff8bc5ce5590f280185ee1c7a1; _samesite_flag_=true; cookie2=1ae68c702f2d87e883690b227152953a; _tb_token_=30f4e95e774e; xlly_s=1; sgcookie=E100X1xCqb64%2Fty3tobC5vP%2BnrHdP0rXjgV4Jwzf6Ts4UrfERgvoF0JnmAty4rUziGRfo141AGq%2FwaLuRhrP9iByeSBRUje%2FA5EnuRBrorSG81o%3D; unb=2203092264; uc3=lg2=WqG3DMC9VAQiUQ%3D%3D&nk2=UUzw3b%2BKiyHHjw%3D%3D&vt3=F8dCujXCVHUPejzVA1o%3D&id2=UUphyd6OaQNQaQ%3D%3D; csg=7db71943; lgc=24%5Cu5C0F%5Cu5148%5Cu751F%5Cu7684; cancelledSubSites=empty; cookie17=UUphyd6OaQNQaQ%3D%3D; dnk=24%5Cu5C0F%5Cu5148%5Cu751F%5Cu7684; skt=7b7a5db42324a37f; existShop=MTYzNDA5Mzg3Ng%3D%3D; uc4=nk4=0%40U24vxrAuiizCBWcoLJ%2BIVGaWd%2BS7&id4=0%40U2grEhApMOjkdfij7K7bulTGrFdl; _cc_=U%2BGCWk%2F7og%3D%3D; _l_g_=Ug%3D%3D; sg=%E7%9A%844e; _nk_=24%5Cu5C0F%5Cu5148%5Cu751F%5Cu7684; cookie1=Vvkji3ni8lQVma%2BVcRJoWHkPYonhXUjbfTyhLtxA3Oo%3D; mt=ci=51_1; uc1=existShop=false&cookie14=Uoe3c9wTS7kS9w%3D%3D&pas=0&cookie21=VFC%2FuZ9aiKCaj7AzMHh1&cookie15=URm48syIIVrSKA%3D%3D&cookie16=URm48syIJ1yk0MX2J7mAAEhTuw%3D%3D; x5sec=7b227365617263686170703b32223a226133313436303963336336316566653863373538633839623362336434393432434b57616d597347454a72336c756a4a6a50576c6e414561444449794d444d774f5449794e6a51374d5367434d4b6546677037382f2f2f2f2f77453d227d; JSESSIONID=EB6E59140A45846FC76B69D8D13C106B; tfstk=cdyGBiXin5l_V8h3NOM_Au1hR1QRZW5Z5-yUL84dja_EiXwFirAeaACdxVQ57I1..; l=eBr9ZXBIgjdDL77zBOfZnurza77TQIRfguPzaNbMiOCP99C65mclW6ErjQLBCnGVHsIXJ3u9pF2aBVYFxydq0-Y3L3k_J_DmndC..; isg=BEFBuCe_xPYC2ylbixd6fqTdUI1bbrVgmgaBTaOWJ8inimBc6r8BMCaIbP7Mgk2Y',}params = (('spm', 'a21bo.jianhua.201856-taobao-item.2'),)r = requests.get(url, headers=headers, params=params)r.raise_for_status()r.encoding = r.apparent_encodingreturn r.textexcept:return ""# 将爬取内容格式化
def parsePage(ils, html):try:p = re.findall(r'"view_price":"[\d.]*"', html)  # 正则表达式的应用t = re.findall(r'"raw_title":".*?"', html)for i in range(len(p)):price = eval(p[i].split(':')[1])title = eval(t[i].split(':')[1])ils.append([price, title])except:print("")# 爬取内容格式化输出
def printGoodsList(ils):temp = "{0:^6}\t{1:^8}\t{2:{3}^16}"  # format格式定义print(temp.format("序号", "价格", "商品名称", chr(12288)))count = 0for l in ils:count = count + 1print(temp.format(count, l[0], l[1], chr(12288)))def main():while True:sth = input("请输入要查找的商品名称:")pages = int(input("请输入要爬取的页面数:"))  # 不建议爬取页面过多,以免造成页面崩溃aurl = 'https://s.taobao.com/search?q=' + sthinlist = []for i in range(pages):  # 对爬取每一页遍历,然后对每一页进行单一处理try:url = aurl + '&s=' + str(44 * i)  # 以爬取的每一页的URL进行访问爬取html = getHTMLText(url)parsePage(inlist, html)except:continueprintGoodsList(inlist)a = input('是否继续进行商品比价y/n')if a == 'y' or a == 'Y':continueelse:breakmain()
print('程序结束')
while True:  # exe文件保持打开pass

python定向爬虫之淘宝商品比价相关推荐

  1. 网络定向爬虫实例---淘宝商品信息比价

    目录 一.前言: 二.前期准备: 1.如何绕过防爬虫 2.一些常见的问题及处理方法: 三.爬虫实例结构分析: 1.主体结构: 2.分析: (1)爬虫可行性: (2)网站数据结构 四.爬虫实例展示: 1 ...

  2. Python网络爬虫获取淘宝商品价格

    1.Python网络爬虫获取淘宝商品价格代码: #-*-coding:utf-8-*- ''' Created on 2017年3月17日 @author: lavi ''' import reque ...

  3. 基于python的购物比价毕设_【Python爬虫】淘宝商品比价定向爬虫

    #CrowTaobaoPrice.py importrequestsimportredef getHTMLText(url):#获得网页信息 headers = {'User-Agent': 'Moz ...

  4. 中国大学排名定向爬虫以及淘宝商品爬虫参考嵩天老师Python爬虫课程遇到的问题及解决

    首先附上课程中程序,无法正常运行 把2016年的url更改为今年的url:http://www.shanghairanking.cn/rankings/bcur/2020 代码如下: import r ...

  5. Python网络爬虫爬淘宝无法爬取问题的解决方法

    看了嵩天教授的[Python网络爬虫与信息提取].MOOC. 北京理工大学   课程,里面有一段演示如何从淘宝爬取价格信息,但实际操作却不行,问题在于淘宝19年开始实行搜索必须登录,但是Python爬 ...

  6. python定向爬取淘宝中商品的名称和价格

    一.思路: (1)目标:获取淘宝搜索页面的信息,提取其中的商品名称和价格 (2)理解: 淘宝的搜索接口 翻页的处理 (3)技术路线:requests库.re库 二.代码实现: 说明:本文爬取的是淘宝中 ...

  7. 网络爬虫实战||淘宝、股票定向爬虫

    正则表达式的概念 regular expression           regex          RE 正则表达式是用来简洁表达一组字符串的表达式. 正则表达式的优势:简洁 正则表达式的语法 ...

  8. python爬虫学习 之 定向爬取 淘宝商品价格

    python爬虫学习 之 定向爬取 淘宝商品价格 import requests import redef getHTMLText(url):try:r = requests.get(url, tim ...

  9. python爬虫学习笔记(三)——淘宝商品比价实战(爬取成功)

    2020年最新淘宝商品比价定向爬取 功能描述 目标:获取淘宝搜索页面的信息,提取其中的商品名称和价格. 理解:淘宝的搜索接口 翻页的处理 技术路线:requests­          re 程序的结 ...

  10. 网络爬虫与信息提取--正则表达式---淘宝商品比价定向爬虫

    淘宝商品比价定向爬虫 本实例爬取时间2019.9.11 由于淘宝代码的不断完善更新,本爬取代码已经不能爬取出商品信息内容 原因:结果为空:打印html看到,需要登录淘宝 在网上找解决方法,可以复制co ...

最新文章

  1. Model验证系统运行机制是如何实现的?
  2. 产品经理等级的划分,来看看你是几级的PM?
  3. TortoiseGit清除账号密码
  4. ORA-12545: Connect failed because target host or object does not exist
  5. [Leveldb源码剖析疑问]-block_builder.cc之Add函数
  6. Django中@login_required用法简介
  7. 银行打电话不接有影响吗?
  8. Amazon AWS S3 上传文件 并获取公用url
  9. Linux 内核与模块调试
  10. 华表Cell应用 - 在IE中使用华表Cell插件 | #华表Cell #报表
  11. Java:使用Java调用打印机进行打印(JPG、PDF和Word三种文件格式)实现
  12. 如何解决语音社交的安全隐忧
  13. 一步解决桌面文件需要管理员权限才能删除问题
  14. ASUS BIOS开启CPU虚拟化
  15. Win10文件无法重命名
  16. Android HTTP边下边播
  17. 微软Azure给openAI提供了多少机器资源
  18. 抖音小程序Tiktok教程之 01 编写您第一个hello world程序(含视频教程)
  19. Debug:ValueError: malformed node or string
  20. kubect安装 windows_k8s安装kubectl top命令

热门文章

  1. 移远M26,三分钟打通TCP流程,AT指令详解
  2. 如何维持手机电池寿命_教你一招,可以让你的手机电池容量长期维持在峰值,延长电池寿命...
  3. 计算机组装的硬件配置及报价,2021组装电脑配置清单及价格表说明
  4. 了解java中暴力反射
  5. Elasticsearch 7.x 常用指标聚合、桶聚合搜索RESTful API
  6. 十分钟写一个好玩的app
  7. mysql2003错误如何解决_win7电脑提示数据错误循环冗余检查如何解决
  8. 推荐 :数据可视化的方法、工具和应用
  9. 公开课可下载资源汇总【转】
  10. Android社交系统