1、Python网络爬虫获取淘宝商品价格代码:

#-*-coding:utf-8-*-
'''
Created on 2017年3月17日
@author: lavi
'''
import requests
from bs4 import BeautifulSoup
import bs4
import re
def getHTMLText(url):try:r = requests.get(url,timeout=30)r.raise_for_statusr.encoding = r.apparent_encodingreturn r.textexcept:return ""
def parserPage(goodsList,html):tlt = re.findall(r'\"view_price\"\:\"[\d\.]*\"',html)plt = re.findall(r'\"raw_title\"\:\".*?\"',html) #添加问号使用最小匹配的for i in range(len(tlt)):title = eval(tlt[i].split(':')[1]) #eval()函数十分强大,可以将将字符串str当成有效的表达式来求值并返回计算结果price = eval(plt[i].split(':')[1])goodsList.append([title,price])
def printPage(goodsList):tplt="{:6}\t{:8}\t{:16}"print(tplt.format("序号","价格","商品名称"))for i in range(len(goodsList)):goods = goodsList[i]print(tplt.format(i+1,goods[0],goods[1]))def main():goods = "书包"depth = 2;url = "https://s.taobao.com/search?q="goodsList = []for i in range(depth):html = getHTMLText(url+goods+"&s="+str(i*44))parserPage(goodsList, html)printPage(goodsList)main()

2、eval()函数使用扩展

eval()函数十分强大,官方demo解释为:将字符串str当成有效的表达式来求值并返回计算结果。so,结合math当成一个计算器很好用。另外可以把list,tuple,dict和string相互转化。

a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"
b = eval(a)
b
Out[3]: [[1, 2], [3, 4], [5, 6], [7, 8], [9, 0]]
type(b)
Out[4]: list
a = "{1: 'a', 2: 'b'}"
b = eval(a)
b
Out[7]: {1: 'a', 2: 'b'}
type(b)
Out[8]: dict
a = "([1,2], [3,4], [5,6], [7,8], (9,0))"
b = eval(a)
b
Out[11]: ([1, 2], [3, 4], [5, 6], [7, 8], (9, 0))

可于看到eval()函数的功能十分强大,但是安全性也是其致命的缺点。想一想这种使用环境:需要用户输入一个表达式,并求值。如果用户恶意输入:

__import__('os').system('dir')

那么eval()之后,你会发现,当前目录文件都会展现在用户前面。那么继续输入:

open('文件名').read()

代码都给人看了。获取完毕,一条删除命令,文件消失。

3、Python正则表达式的最小匹配

Python中正则表达式re模块默认使用贪婪匹配,即最大匹配。但我们也有需要使用最小匹配的时候,下面就来看看什么是最下匹配,以及如何实现最小匹配:

最短匹配应用于:假如有一段文本,你只想匹配最短的可能,而不是最长。
例子
比如有一段html片段,'\this is first label\\the second label\',如何匹配出每个a标签中的内容,下面来看下最短与最长的区别。
代码

import re
>>> str = '<a>this is first label</a><a>the second label</a>'>>> print re.findall(r'<a>(.*?)</a>', str)  # 最短匹配
['this is first label', 'the second label']>>> print re.findall(r'<a>(.*)</a>', str)
['this is first label</a><a>the second label']

解释
例子中,模式r'(.*?)'的意图是匹配被和包含的文本,但是正则表达式中*操作符是贪婪的,因此匹配操作会查找出最长的可能。
但是在*操作符后面加上?操作符,这样使得匹配变成非贪婪模式,从而得到最短匹配。

参考资料:

1、中国大学MOOCPython网络爬虫与信息提取课程

2、http://www.tuicool.com/articles/BBVnQbq

3、http://www.cnblogs.com/jhao/p/5989241.html

Python网络爬虫获取淘宝商品价格相关推荐

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

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

  2. 小猿圈分享利用python网络爬虫获取网易云歌词

    今天小猿圈给大家分享网易云音乐歌词爬取方法. 本文的总体思路如下: 找到正确的URL,获取源码: 利用bs4解析源码,获取歌曲名和歌曲ID: 调用网易云歌曲API,获取歌词: 将歌词写入文件,并存入本 ...

  3. 手把手教你使用Python网络爬虫获取B站视频选集内容(附源码)

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 位卑未敢忘忧国,事定犹须待阖棺. ...

  4. python网络爬虫_一篇文章教会你利用Python网络爬虫获取穷游攻略

    点击上方"IT共享之家",进行关注 回复"资料"可获赠Python学习福利 [一.项目背景] 穷游网提供原创实用的出境游旅行指南.攻略,旅行社区和问答交流平台, ...

  5. python3爬虫有道翻译_一篇文章教会你利用Python网络爬虫获取有道翻译手机版的翻译接口...

    [一.项目背景] 有道翻译作为国内最大的翻译软件之一,用户量巨大.在学习时遇到不会的英语词汇,会第一时间找翻译,有道翻译就是首选.今天教大家如何去获取有道翻译手机版的翻译接口. ![image](ht ...

  6. 如何用python搜索要用的素材_一篇文章教会你利用Python网络爬虫获取素材图片

    [一.项目背景] 在素材网想找到合适图片需要一页一页往下翻,现在学会python就可以用程序把所有图片保存下来,慢慢挑选合适的图片. [二.项目目标] 1.根据给定的网址获取网页源代码. 2.利用正则 ...

  7. IT宅男利用Python网络爬虫获取有道翻译手机版翻译接口

    [一.项目背景] 有道翻译作为国内最大的翻译软件之一,用户量巨大.在学习时遇到不会的英语词汇,会第一时间找翻译,有道翻译就是首选.今天教大家如何去获取有道翻译手机版的翻译接口. [二.项目目标] 多国 ...

  8. python爬虫可以爬取个人信息吗_手把手教你利用Python网络爬虫获取旅游景点信息...

    爬虫系列: 当我们出去旅游时,会看这个地方有哪些旅游景点,景点价格.开放时间.用户的评论等. 本文基于Python网络爬虫技术,以hao123旅游网为例,获取旅游景点信息. 1.项目目标 获取网站的景 ...

  9. 手把手教你使用Python网络爬虫获取音效信息

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 一腔热血勤珍重,洒去犹能化碧涛. ...

最新文章

  1. java输出打印到文件_log4j简单使用java项目--后台打印以及输出到文件
  2. DCMTK:DSRListOfItems类的测试程序
  3. CentOS6.5安装MySQL5.7详细教程
  4. .Net Framework System.Collections 集合类
  5. mac 查看本机ip地址命令
  6. devexpress,dotnetbar控件
  7. 【软考系统架构设计师】2021年下系统架构师案例分析历年真题
  8. Illegal command:debug错误
  9. 7-45 航空公司 VIP 客户查询(25 分)
  10. sap清账使用反记账_【转】SAP反记账功能祥解
  11. 超级应用/_超级应用
  12. 重庆java培训机构排名榜
  13. 企业网络营销中需要避免的九大忌
  14. C/C++ 数组的初始化
  15. 解密 富士白光HAKKO触摸屏上传密码解密
  16. 今日剁手 | 这些值得买的给你准备好了,快囤起来
  17. java对接PayPal支付-自动续费功能
  18. c语言 计步算法,基于51单片机的计步器设计
  19. Golang并发操作入门
  20. 【数据分析与挖掘】财政收入影响因素分析及预测模型(有数据集和代码)

热门文章

  1. win7一直显示正在关机_win7电脑如何取消自动关机
  2. 简单ARM指令集介绍
  3. 【语音识别】Kaldi相关工具包及示例数据介绍
  4. 【小程序】数据缓存、获取和清除
  5. 全面分析日语助词(3)
  6. 41岁成中国最年轻院士,从农村娃到量子之父,他是科研人的偶像
  7. 遠端桌面連線失敗,出現:遠端工作階段中斷 因為沒有遠端桌面用戶端存取使用權...
  8. 下载安装MicroStrategy 完整版
  9. 打开IE自动跳转edge
  10. PDF转换成Word文档(记一下,蛮实用)