在讲爬取淘宝详情页数据之前,先来介绍一款 Chrome 插件:Toggle JavaScript (它可以选择让网页是否显示 js 动态加载的内容),如下图所示: 当这个插件处于关闭状态时,待爬取的页面显示的数据如下: 当这个插件处于打开状态时,待爬取的页面显示的数据如下:   可以看到,页面上很多数据都不显示了,比如商品价格变成了划线价格,而且累计评论也变成了0,说明这些数据都是动态加载的,以下演示真实价格的找法(评论内容找法类似),首先检查页面元素,然后点击Network选项卡,刷新页面,可以看到很多动态加载的数据,在里面找到包含商品价格的链接(可以使用Ctrl+f查找),如下图所示:   将此链接在新的标签页打开,如下图所示,可以看到,被禁止访问了,所以爬取的时候要在headers中加上Referer字段告诉服务器你是从哪个页面链接过来的,Referer字段可以在这里查看: 评论数据的链接可以直接访问(和价格信息找法类似),这里我知己去访问它,如下图所示:   可以看到评论信息总共有7页,而且都是json格式的数据,所以可以用js 继续阅读 >>


何攀 18/01/06 23:14:32
前言 最近微信的跳一跳很火,大家看到排行榜上几百上千的分数,再看看自己百分左右的分数肯定很难过,我手残怪我吗?没关系,如果你跟着我来,也能让你分数霸榜。 原理 首先大家是有一个直观感受,根据两个箱子距离的不同,需要按压的时间也是不一样的,一般来说,一个大胆的猜测是按压时间和距离是成正比的。 这是我们的工作原理: 在跳一跳页面截图 计算出初始点和终点的距离 想办法测出距离与按压时间的系数 想办法让手机按压指定的时间 重复1-4 工具 adb调试工具,它可以辅助截图以及上传截图给电脑,以及控制手机按压位置及时间 python 处理数据 python Pillow库 一个图像库,可以获取图像信息 python matplotlib库 配合Pillow打开图像并记录鼠标点击地方的坐标 准备工作 环境 fedora 27 python3.6 安装 adb调试工具 fedora/centos sudo yum install adb ubuntu sudo apt install adb python需要的库 sudo pip3 i 继续阅读 >>


李余通 18/01/04 20:54:33
以前学习python都是马马虎虎,导致很多特性只是知道完全不会用,现在将他们重新学习 可迭代对象(Iterable) 简单来说,所有可以放入for循环中的对象都是可迭代对象,如列表,元组,字符串,字典… 如何判断对象是否是可迭代对象? 实际上,只要实现了__iter__方法的对象就是可迭代对象,这个方法用来返回迭代器本身(特别重要)。 eg: >>> s = "dasda" >>> s.__iter__() <str_iterator object at 0x7f23ebc44470> python提供了方法判断是否是可迭代对象。 >>> from collections import Iterable >>> isinstance(s,Iterable) True 迭代器(Iterator) 似乎和上面的概念很相似。实际上,所有实现了__next__()方法的对象都是迭代器。一般来说,也都可以放入for循环。 python中原生的迭代器不多,可 继续阅读 >>


李余通 18/01/02 19:16:42
说明 2007版以前的Excel(xls结尾的),需要使用xlrd读,xlwt写。 2007版以后的Excel(xlsx结尾的),需要使用openpyxl来读写。 pypi的地址: https://pypi.python.org/pypi/xlwt https://pypi.python.org/pypi/xlrd https://pypi.python.org/pypi/openpyxl openpyxl文档地址: https://openpyxl.readthedocs.io/en/latest/changes.html 举个栗子 # 读写2003 excel import xlrd import xlwt # 读写2007 excel import openpyxl #!/usr/bin/env python # coding=utf-8 import xlrd import xlwt def write03Excel(path): wb = xlwt.Workbook() #类的实例化 sheet = 继续阅读 >>


陈文浩 17/11/06 23:23:54
1、特殊符号(先解释,后面会有例子) 表示 描述 re1|re2 或的关系 . 匹配任何字符(\n除外),要显示的匹配.号,需要加\| ^ 匹配字符串的开头 $ 匹配字符串的结尾 * 匹配0次或多次前面出现的正则表达式 + 匹配1次或者多次前面出现的正则表达式 ? 匹配0次或者一次(一句话,就是匹配越少越好) {N} 重复N次前面出现的正则表达式 {M,N} 匹配M~N次前面出现的正则 【abcd】 匹配集合中某一个元素 【x-y】 匹配x~y范围内任意的一个字符(如【A-Za-z】匹配大小写 【^……】 不匹配集合里的字符(切记:^【……】意义是匹配以集合元素开头的) 注意 直接使用\…的时候是在用r‘\……’情况使用的,不用r是要用\……才能使用 \d 匹配十进制数字 \w 匹配任何字母数字 \s 匹配任何空字符(\S与之相反) \N 匹 继续阅读 >>


陈文浩 17/10/22 17:19:32
#!/usr/bin/python import re import urllib.parse import urllib import time from datetime import datetime import urllib.robotparser import collections def link_crawler(seed_url, link_regex=None, delay=5, max_depth=-1, max_urls=-1, headers=None, user_agent='wswp', proxy=None, num_retries=1): crawl_queue = collections.deque([seed_url]) seen = {seed_url: 0} #已经看过的页面和查找的深度,防止爬虫陷阱 num_urls = 0 #记录已经下载多少个链接 rp = get_robots(seed_url) #获取了robots协议 throttle = 继续阅读 >>


陈文浩 17/10/10 22:37:48
脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它,就这么简单 #!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器; #!/usr/bin/env python这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里。 当系统看到这一行的时候,首先会到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作。 #!/usr/bin/python相当于写死了python路径; #!/usr/bin/env python会去环境设置寻找python目录(推荐这种写法) 作者:m0_37787222 发表于2017/10/10 16:32:47 原文链接 阅读:0 评论:0 查看评论 继续阅读 >>


陈文浩 17/10/10 16:32:47
在介绍如何使用python程序向指定邮箱发送邮件之前,我们需要先介绍一下有关电子邮件的相关知识。 Email的历史比Web还要久远,直到现在,Email也是互联网上应用非常广泛的服务。 几乎所有的编程语言都支持发送和接收电子邮件,但是,先等等,在我们开始编写代码之前,有必要搞清楚电子邮件是如何在互联网上运作的。 假设我们自己的电子邮件地址是me@163.com,对方的电子邮件地址是friend@sina.com,现在我们用Outlook或者Foxmail之类的软件写好邮件,填上对方的Email地址,点“发送”,电子邮件就发出去了。这些电子邮件软件被称为MUA:Mail User Agent——邮件用户代理。 Email从MUA发出去,不是直接到达对方电脑,而是发到MTA:Mail Transfer Agent——邮件传输代理,就是那些Email服务提供商,比如网易、新浪等等。由于我们自己的电子邮件是163.com,所以,Email首先被投递到网易提供的MTA,再由网易的MTA发到对方服务商,也就是新浪的MTA。这个过程中间可能还会经过别的MTA,但是我 继续阅读 >>


冯鑫 17/09/18 22:10:51
前一段时间刚刚入门python爬虫,有大概半个月时间没有写python了,都快遗忘了。于是准备写个简单的爬虫练练手,我觉得网易云音乐最优特色的就是其精准的歌曲推荐和独具特色的用户评论,于是写了这个抓取网易云音乐热歌榜里的热评的爬虫。我也是刚刚入门爬虫,有什么意见和问题欢迎提出,大家一起共同进步。 废话就不多说了~ 我们的目标是爬取网易云中的热歌排行榜中所有歌曲的热门评论。 这样既可以减少我们需要爬取的工作量,又可以保存到高质量的评论。 首先,我们打开网易云网页版,如图: 点击排行榜,然后点击左侧云音乐热歌榜,如图: 我们先随便打开一个歌曲,找到如何抓取指定的歌曲的热门歌评的方法,如图,我选了一个最近我比较喜欢的歌曲为例: 进去后我们会看到歌评就在这个页面的下面,接下来我们就要想办法获取这些评论。 接下来打开web控制台(chrom的话打开开发者工具,如果是其他浏览器应该也是类似),chrom下按F12,如图: 选则Network,然后我们按F5刷新一下,刷新之后得到的数据如下图所示: 可以看到浏览器发送了非常多的信 继续阅读 >>


冯鑫 17/09/12 21:50:47
假如我们想把京东商城图书类的图片类商品图片全部下载到本地,通过手工复制粘贴将是一项非常庞大的工程,此时,可以用Python网络爬虫实现,这类爬虫称为图片爬虫,接下来,我们将实现该爬虫。 首先,打开要爬取的第一个网页,这个网页将作为要爬取的起始页面。我们打开京东,选择图书分类,由于图书所有种类的图书有很多,我们选择爬取所有编程语言的图书图片吧,网址为:https://list.jd.com/list.html?cat=1713,3287,3797&page=1&sort=sort_rank_asc&trans=1&JL=6_0_0#J_main 如图: 进去后,我们会发现总共有251页。 那么我们怎么才能自动爬取第一页以外的其他页面呢? 可以单击“下一页”,观察网址的变化。在单击了下一页之后,发现网址变成了https://list.jd.com/list.html?cat=1713,3287,3797&page=2&sort=sort_rank_asc&trans=1&JL=6_0 继续阅读 >>


冯鑫 17/08/18 11:48:48