python中哪些是点后写

注意1、__init__并不相当于C#中的构造函数,执行它的时候,实例已构造出来了。class A(object):
def __init__(self,name):
self.name=name
def getName(self):
return 'A '+self.name
当我们执行a=A('hello')
时,可以理解为a=object.__new__(A)
A.__init__(a,'hello')
即__init__作用是初始化已实例化后的对象。
注意2、子类可以不重写__init__,实例化子类时,会自动调用超类中已定义的__init__class B(A):
def getName(self):
return 'B '+self.name
if __name__=='__main__':
b=B('hello')
print b.getName()
但如果重写了__init__,实例化子类时,则不会隐式的再去调用超类中已定义的__init__class C(A):
def __init__(self):
def getName(self):
return 'C '+self.name
if __name__=='__main__':
print c.getName()
则会报"AttributeError: 'C' object has no attribute 'name'”错误,所以如果重写了__init__,为了能使用或扩展超类中的行为,最好显式的调用超类的__init__方法class C(A):
def __init__(self,name):
super(C,self).__init__(name)
def getName(self):
return 'C '+self.name
if __name__=='__main__':
c=C('hello')
print c.getName()
阅读(...) 评论()283被浏览50,477分享邀请回答392 条评论分享收藏感谢收起73 条评论分享收藏感谢收起Python中的列表知识点汇总
转载 & & 投稿:goldensun
这篇文章主要总结了一些Python中的列表的知识点,来自于IBM官网技术文档,需要的朋友可以参考下
Python list
在介绍 Python tuple 时,我使用了类比的方法,将其比做一个袋子,您可以在袋子中存放不同的东西。Python list 与此非常类似,因此,它的功能与袋子的功能也非常类似。但有一点是不同的,即您可以使用方括号创建 list,如清单 1 所示。
清单 1. 在 Python 中创建一个 list
&&& l = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
&&& type(l)
&type 'list'&
&&& el = []
# Create an empty list
&&& len(el)
&&& sl = [1]
# Create a single item list
&&& len(sl)
&&& sl = [1,]
a single item list, as with a tuple
&&& len(sl)
本例展示如何创建包含从 0 到 9(包括 0 和 9)的简单 list,以及如何创建一个空列表和一个包含单个条目的列表。如果您还记得的话,创建单个条目的 tuple 还需要在单个条目后面跟一个逗号。这是区分单个条目 tuple 与方法调用的必要条件,这一点将在以后的文章中详细讨论。而对于 list,则是不必要的,尽管也允许使用单个逗号。
与往常一样,要获取有关 Python 主题的更多信息,您可以使用内置的帮助解释器,例如,清单 2 展示了如何开始 list 类的帮助描述。
清单 2. 获取有关 list 的帮助
&&& help(list)
Help on class list in module __builtin__:
class list(object)
| list() -& new list
| list(sequence) -& new list initialized from sequence's items
| Methods defined here:
| __add__(...)
x.__add__(y) &==& x+y
| __contains__(...)
x.__contains__(y) &==& y in x
如果仔细观察清单 2 中对 list 类的描述,您会看到其中提供了两个不同的构造函数:一个没有参数,另一个接受一个序列类作为参数。因此,使用构造函数及方括号简化符号,可以创建 list。这就提供了很大的灵活性,原因是您可以方便地将现有的序列,如 tuple 或 string 转换为 list,如清单 3 所示。不过,请注意,传递的参数必须是序列 —— 并且不只是对象序列 —— 否则将会出现错误。对于任何序列类型,您都可以使用 len 方法容易地查找序列中条目的数量。
清单 3. 直接创建 list 对象
&&& l = list()
&&& type(l)
&type 'list'&
&&& len(l)
&&& l = list((0, 1, 2, 3, 4, 5, 6, 7,
# Create a list from a tuple
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
&&& len(l)
&&& l = list([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
# Create a list from a list
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
&&& len(l)
&&& l = list(0, 1, 2, 3, 4, 5, 6, 7,
# Error: Must pass in a sequence
Traceback (most recent call last):
File "&stdin&", line 1, in ?
TypeError: list() takes at most 1 argument (10 given)
&&& l = list("") # Create a list from a string
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
&&& type(l)
&type 'list'&
&&& len(l)
正如您看到的,创建 list 是很容易的,如果还没有尝试过,现在可以试一试。您不仅能够将序列直接传递给构造函数,还可以将拥有元组或字符串的变量传递给 list 构造函数。
很明显,序列较为有用的主要原因是它可以非常方便地访问序列中的条目。如果还记得对 tuple 的讨论,便知道可以在序列中一次访问一个条目或者通过将条目切片来访问条目。Python list 也可以使用相同的技术,如清单 4 所示。
清单 4. 从 list 访问条目
&&& l = list([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
# Get the first item in the list
&&& type(l[0])
&type 'int'&
# Get the sixth item in the list
&&& l[1:5]
# Get the second through fifth items
[1, 2, 3, 4]
&&& type(l[1:5])
&type 'list'&
&&& l[0::2]
# Get every second item
[0, 2, 4, 6, 8]
&&& l[0], l[1], l[2]
在以前的文章中已经了解到,切片 是一个非常有用的概念,其一般形式为 l[start:end:step],其中 start 和 end 分别是开始和结束索引,step 是在切片时要跨过的条目数量。此外,还可以对结束索引使用负值,即从序列的结尾往回计数。另一个有用的功能是以一种很合适的方式处理错误(如超过序列的长度)。如前一个例子所示,您还可以选择忽略切片中使用的三个值中的一个或多个值。例如,我在切片 l[0::2] 中没有使用结束索引。
可变的序列
在本文的开头,我提到过 list 和 tuple 之间的主要区别在于 list 是一个可变的序列,这就意味着您不但可以方便地访问 list 中的条目,而且可以方便地修改它们。但这会引起一个并发症状:您只能修改序列中的条目。若要向序列中添加条目(而不仅仅是修改条目),可使用 append 方法,如清单 5 所示。
清单 5. 修改 list
&&& l = []
&&& l[0] = 0
# The list is empty
Traceback (most recent call last):
File "&stdin&", line 1, in ?
IndexError: list assignment index out of range
&&& l.append(0)
&&& l[0] = 1
正如前一个例子所演示的,尝试修改不存在的 list 条目会导致出现错误。这一点意义重大,并演示了 Python 方法生成错误的情况。当问题较为严重时,将会产生一个错误,如果问题较小并且可以很容易地处理,则忽略它。
异构的可变序列
您可能想了解更为复杂的修改。通过综合切片知识以及如何修改 list 的知识,您应该已经获得了非常重要的见识:可以通过多种方式修改列表。就像 tuple 一样,list 也可以持有不同类型的数据(或不同类型的对象),这就是我所说的异构的可变序列。这两种功能在清单 6 中进行了更完整的描述。
清单 6. 异构的可变 list
&&& l=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
&&& l[2] = 2
&&& type(l[2])
&type 'int'&
&&& l[2] = "two"
# Change the type of an element
&&& ,ype(l[2])
&type 'str'&
[0, 1, 'two', 3, 4, 5, 6, 7, 8, 9]
&&& l[2] = l[2:5] * 2
[0, 1, ['two', 3, 4, 'two', 3, 4], 3, 4, 5, 6, 7, 8, 9]
&&& del(l[2])
# Remove single element
[0, 1, 3, 4, 5, 6, 7, 8, 9]
&&& l[1:3] = []
# Remove a slice
[0, 4, 5, 6, 7, 8, 9]
修改 list 中的条目相当容易:您可以适当地设置条目的值,甚至设置成另一种不同的类型,如 string 或另一 list。您还可以使用重复运算符,可以将该运算符识别为乘法运算符,以便从小片段中构建更大的列表。
前面的例子向您展示了如何向 list 中添加元素,以及如何修改 list 中的条目。前一个例子还演示了如何从 list 中删除对象。删除条目的第一个方法是使用 del 方法。使用此方法可以删除一个条目或一个条目范围。您还可以使用灵活而强大的切片方法从 list 中删除切片。
在前一个例子中您可以看到,list 可以包含另一个 list 作为条目。如果扩展此例子,您可能想知道每个条目由一个 list 替换将会发生什么样的事情。结果是一个数组,或者从更加数学方面来讲是一个矩阵。清单 7 展示了如何使用 list 保持二维 (2-D) 或三维 (3-D) 数组。
清单 7. list 作为一个数组
&&& al = [[0, 1, 2], [3, 4, 5], [6, 7, 8]]
[[0, 1, 2], [3, 4, 5], [6, 7, 8]]
&&& al[0][0]
# First element in 2D array
&&& al[2][2]
# Last element in 2D array
&&& al[1][2]
&&& al = [[[0, 1], [2, 3]], [[4, 5], [6, 7]]]
[[[0, 1], [2, 3]], [[4, 5], [6, 7]]]
&&& al[0][0][1]
&&& len(al)
# Length of outer dimension
&&& len(al[0])
# Length of middle dimension
&&& len(al[0][0])
# Length of inner dimension
其他列表操作
list 对象具有许多可以应用于现有列表的有用方法。例如,您可以反转 list 中的所有条目或排序 list。不过,要记住这些操作的一个重点在于,它们是就地 操作,这意味着它们会修改调用它们所针对的 list。因此,如果您尝试创建新列表,并将其设置为对这些方法之一调用所产生的结果,则会得到一个空列表。
list 除可以用于模拟数组外,还可以用于模拟其他数据结构。例如,append 和 pop 方法对 list 函数的操作要么是先进先出 (FIFO) 数据结构(也称为队列),要么是后进先出 (LIFO) 数据结构(也称为堆栈)。通过允许您将条目设置为从 list 中弹出(删除并返回),pop 方法支持这些功能。如果弹出 list 的第一项,则是一个队列;反之,如果弹出 list 的最后一项,则是一个堆栈,如清单 8 所示。
清单 8. 操纵 list
&&& l=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
&&& id(l) # This is the object id for our current list
&&& l.reverse()
# Reverse the list
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
&&& id(l) # The id is the same, modified list in place.
&&& l.sort()
# Sort the list in numerical order
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
&&& id(l) # Modified the existing list
&&& l.index(5)
# Same as l[5]
&&& l.count(0)
many times does '0' occur in the list
&&& l.pop()
# Take off the last item (Stack)
[0, 1, 2, 3, 4, 5, 6, 7, 8]
&&& l.pop(5)
# Take out the fifth element
[0, 1, 2, 3, 4, 6, 7, 8]
&&& l.pop(0)
# Take the first item off the list (Queue)
[1, 2, 3, 4, 6, 7, 8]
列表:切片和切块
本文介绍了 list,它是一个容器对象,可以方便地进行修改,而且可以持有不同类型的数据。由于它具有相当的灵活性,因此 list 是 Python 编程语言中最常用的结构之一已不足为怪。list 像一个口袋,可以容纳不同类型的数据,并可以根据需要更改。您可以像使用数组一样使用 list,以有组织的方式容纳数据;您还可以像使用队列或堆栈一样使用 list。在以后的文章中还将更为深入地探索这一灵活性,并介绍强大的编程技术,即列表理解。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)人生苦短,我用Python(写在前面)a year ago赞赏4 人赞赏314收藏分享举报文章被以下专栏收录有趣有料,python爬虫{&debug&:false,&apiRoot&:&&,&paySDK&:&https:\u002F\u002Fpay.zhihu.com\u002Fapi\u002Fjs&,&wechatConfigAPI&:&\u002Fapi\u002Fwechat\u002Fjssdkconfig&,&name&:&production&,&instance&:&column&,&tokens&:{&X-XSRF-TOKEN&:null,&X-UDID&:null,&Authorization&:&oauth c3cef7c66aa9e6a1e3160e20&}}{&database&:{&Post&:{&&:{&isPending&:false,&contributes&:[{&sourceColumn&:{&lastUpdated&:,&description&:&一个小小白的爬虫项目记录&,&permission&:&COLUMN_PUBLIC&,&memberId&:,&contributePermission&:&COLUMN_PUBLIC&,&translatedCommentPermission&:&all&,&canManage&:true,&intro&:&有趣有料,python爬虫&,&urlToken&:&Waking-up&,&id&:32886,&imagePath&:&v2-aaf0c7b44b795b9adb8d24c.jpg&,&slug&:&Waking-up&,&applyReason&:&0&,&name&:&Python 爬虫实战日记&,&title&:&Python 爬虫实战日记&,&url&:&https:\u002F\u002Fzhuanlan.zhihu.com\u002FWaking-up&,&commentPermission&:&COLUMN_ALL_CAN_COMMENT&,&canPost&:true,&created&:,&state&:&COLUMN_NORMAL&,&followers&:2269,&avatar&:{&id&:&v2-aaf0c7b44b795b9adb8d24c&,&template&:&https:\u002F\u002Fpic3.zhimg.com\u002F{id}_{size}.jpg&},&activateAuthorRequested&:false,&following&:false,&imageUrl&:&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-aaf0c7b44b795b9adb8d24c_l.jpg&,&articlesCount&:16},&state&:&accepted&,&targetPost&:{&titleImage&:&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-388e9b9f1febdedc5e42f889cf1ddcb6_r.jpg&,&lastUpdated&:,&imagePath&:&v2-388e9b9f1febdedc5e42f889cf1ddcb6.jpg&,&permission&:&ARTICLE_PUBLIC&,&topics&:[,30960],&summary&:&其实一个知乎小透明。大三学生。自学python爬虫大概一个月多一点。最开始是在简书上写博客,记录学习中项目和问题。一直到前几天\u003Cb\u003E\&Python开发者社区\&\u003C\u002Fb\u003E专栏编辑找到我 作为一个小白,震惊了。后面萌生了在\u003Cb\u003E知乎上记录学习项目\u003C\u002Fb\u003E的想法,试着申请了下,居然通过了…&,&copyPermission&:&ARTICLE_COPYABLE&,&translatedCommentPermission&:&all&,&likes&:0,&origAuthorId&:0,&publishedTime&:&T19:45:23+08:00&,&sourceUrl&:&&,&urlToken&:,&id&:2699707,&withContent&:false,&slug&:,&bigTitleImage&:false,&title&:&人生苦短,我用Python(写在前面)&,&url&:&\u002Fp\u002F&,&commentPermission&:&ARTICLE_ALL_CAN_COMMENT&,&snapshotUrl&:&&,&created&:,&comments&:0,&columnId&:32886,&content&:&&,&parentId&:0,&state&:&ARTICLE_PUBLISHED&,&imageUrl&:&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-388e9b9f1febdedc5e42f889cf1ddcb6_r.jpg&,&author&:{&bio&:&知足常乐&,&isFollowing&:false,&hash&:&3b7e8b837dc82a5ab235&,&uid&:412000,&isOrg&:false,&slug&:&wei-yan-ying-12&,&isFollowed&:false,&description&:&http:\u002F\u002Fweiyanying.com&,&name&:&Wakingup&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fwei-yan-ying-12&,&avatar&:{&id&:&v2-cbfe031c09f0a9d6825f3c&,&template&:&https:\u002F\u002Fpic1.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},&memberId&:,&excerptTitle&:&&,&voteType&:&ARTICLE_VOTE_CLEAR&},&id&:608818}],&title&:&人生苦短,我用Python(写在前面)&,&author&:&wei-yan-ying-12&,&content&:&其实一个知乎小透明。大三学生。\u003Cp\u003E自学python爬虫大概一个月多一点。最开始是在简书上写博客,记录学习中项目和问题。\u003C\u002Fp\u003E\u003Cp\u003E一直到前几天\u003Cb\u003E\&Python开发者社区\&\u003C\u002Fb\u003E专栏编辑找到我\u003C\u002Fp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-477ded2dffb0c951ea25f173_b.jpg\& data-rawwidth=\&1063\& data-rawheight=\&1557\& class=\&origin_image zh-lightbox-thumb\& width=\&1063\& data-original=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-477ded2dffb0c951ea25f173_r.jpg\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='1063'%20height='1557'&&\u002Fsvg&\& data-rawwidth=\&1063\& data-rawheight=\&1557\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&1063\& data-original=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-477ded2dffb0c951ea25f173_r.jpg\& data-actualsrc=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-477ded2dffb0c951ea25f173_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-cefe801b72e8e13d3fc1b1caa9c14b0e_b.jpg\& data-rawwidth=\&943\& data-rawheight=\&652\& class=\&origin_image zh-lightbox-thumb\& width=\&943\& data-original=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-cefe801b72e8e13d3fc1b1caa9c14b0e_r.jpg\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='943'%20height='652'&&\u002Fsvg&\& data-rawwidth=\&943\& data-rawheight=\&652\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&943\& data-original=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-cefe801b72e8e13d3fc1b1caa9c14b0e_r.jpg\& data-actualsrc=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-cefe801b72e8e13d3fc1b1caa9c14b0e_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cbr\u003E\u003Cp\u003E作为一个小白,震惊了。\u003C\u002Fp\u003E\u003Cp\u003E后面萌生了在\u003Cb\u003E知乎上记录学习项目\u003C\u002Fb\u003E的想法,试着申请了下,居然通过了,便有了这个专栏。\u003C\u002Fp\u003E\u003Cp\u003E我学python最初是想了解编程,学着学着,不一样了。\u003C\u002Fp\u003E\u003Cp\u003E计算机领域各种神奇奥妙,爬虫+python这种黑魔法简直不要太好玩好么!\u003C\u002Fp\u003E\u003Cp\u003E之前的学习死记硬背的多,一个多月来动手解决各种问题,发现自己的兴趣原来在编程。\u003C\u002Fp\u003E\u003Cp\u003E第一次在知乎上发文章,不知道该写什么好。索性把简书上 \u003Cb\u003E自学爬虫一月总结\u003C\u002Fb\u003E 搬过来。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cbr\u003E\u003Cblockquote\u003E\u003Cp\u003E小白的记录,写给自己\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E\u003Cb\u003E没有任何编程基础,C都没学过\u003C\u002Fb\u003E。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E花了两周多,把\u003Cb\u003E廖大的教程\u003C\u002Fb\u003E草草过了,直接跳过web部分。然后开学了。\u003C\u002Fp\u003E\u003Cp\u003E复习了一周数据结构。开始写爬虫。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E第一个爬虫其实是 \u003Cb\u003E天涯论坛\u003C\u002Fb\u003E。大概三周前多一点,刚学会点正则表达式(其实是最简单的(.*?)),背着大电脑到图书馆,然后对着崔庆才大神的教程鼓捣半天,最后终于弄出来了,感觉整个世界都亮了。\u003C\u002Fp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-8bcb061e247c81df9c8a_b.jpg\& data-rawwidth=\&994\& data-rawheight=\&606\& class=\&origin_image zh-lightbox-thumb\& width=\&994\& data-original=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-8bcb061e247c81df9c8a_r.jpg\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='994'%20height='606'&&\u002Fsvg&\& data-rawwidth=\&994\& data-rawheight=\&606\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&994\& data-original=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-8bcb061e247c81df9c8a_r.jpg\& data-actualsrc=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-8bcb061e247c81df9c8a_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cp\u003E然后去爬 \u003Cb\u003E糗事百科\u003C\u002Fb\u003E,接着是百度贴吧旅行贴的图片,随便输入帖子号便可打印评论和下载图片(顺便还发现了两有趣的贴)。\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E最开始是urllib2、re,慢慢开始学 requests、BeautifulSoup、xpath。\u003Cbr\u003E期间还把《\u003Cb\u003E图解http\u003C\u002Fb\u003E》看了。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E然后在 \u003Cb\u003ECSDN上写博客\u003C\u002Fb\u003E,记录小项目。小项目前顺手加个\&python 网络爬虫入门(一\\二\\三)\&,骗骗一样刚学的盆友也好增加浏览量,好吧承认我是个小心机~ ^_^\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E开始用上面的富文本编辑器,不知道为啥页面一团糟。后面注册了简书帐号,发现\u003Cb\u003Emarkdown编辑器\u003C\u002Fb\u003E不要太好用,简书界面也友好,爱上了。后面发现CSDN也有markdown编辑器,于是每次先在简书上排版,发布,最后复制粘贴到CSND,\u003Cbr\u003E嘻嘻我简直机智~\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E研究了三天多pixabay,最后做了个\&图片下载神器\&,速度飞快。后面发现特么的获取的不是原图啊,赶紧地将大标题改成“\u003Cb\u003E一个简陋的下载器\u003C\u002Fb\u003E”,尴尬。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E获取不到高清原图当然不服气,尤其是pixabay这种高人气网站。然后试着\u003Cb\u003E破解pexels获取高清原图\u003C\u002Fb\u003E,成了。(为了爬外网还专门买了一个月vpn)原来图片API在源码里,新鲜不已。虽然单线程有些慢,终于是实际意义上的下载器。开始羞耻哒在Github上放自己的代码(说bug也行吧[小白式捂脸])。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003EPycharm这个编辑器确实很好用,就是界面太。。。于是\u003Cb\u003E动手修改Pycharm设置\u003C\u002Fb\u003E ,改了一下午加一晚上,变成这样,个人觉得清新又护眼~\u003C\u002Fp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\u002Fpic4.zhimg.com\u002Fv2-011e_b.jpg\& data-rawwidth=\&1240\& data-rawheight=\&563\& class=\&origin_image zh-lightbox-thumb\& width=\&1240\& data-original=\&https:\u002F\u002Fpic4.zhimg.com\u002Fv2-011e_r.jpg\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='1240'%20height='563'&&\u002Fsvg&\& data-rawwidth=\&1240\& data-rawheight=\&563\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&1240\& data-original=\&https:\u002F\u002Fpic4.zhimg.com\u002Fv2-011e_r.jpg\& data-actualsrc=\&https:\u002F\u002Fpic4.zhimg.com\u002Fv2-011e_b.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cbr\u003E\u003Cp\u003E前阵子川大掀起“玻璃杯事件”,盛况空前。做了个爬虫\u003Cb\u003E爬info神回复前100条\u003C\u002Fb\u003E,“史上最全,拿走不谢”,抛到空间和朋友圈,小伙伴们都惊呆了,顺便骗了不少浏览量。通过这个爬虫学会了抓包,原来破解动态网页不止selenium和PhantomJS。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E也遇到很多问题,基本上都是自己想+查笔记+百度+知乎+csdn+stackoverflow解决的。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E用selenium爬教务网失败。改用抓包,加上stackoverflow上偷来的奇淫巧计,顺利爬取\u003Cb\u003E教务处成绩并保存至excel\u003C\u002Fb\u003E,仅用代码30余行。竟然开始有人浏览我写的东西,还收到几个赞,开心^_^\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E看到好多大神爬电商、招聘网站,分析数据起来有模有样,心动了。于是去爬 \u003Cb\u003E拉勾网\u003C\u002Fb\u003E,用\u003Cb\u003EBDP搞了个小型数据分析\u003C\u002Fb\u003E。花了一晚上分析网站,主要用到抓包和Cookies,没学到scrapy所以有一点慢。3万多数据,没见过世面的小白还有些小激动~做了一些图表效果还可以(BDP大法吼啊)。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E不得不说用简书记录项目,还是很费时间的,不过感觉也受了不少锻炼,尤其在总结思路、逻辑编排这几个方面。通过记录项目中的问题和解决思路,加深巩固了知识点。\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cbr\u003E\u003Ch4\u003E最后总结一下:\u003C\u002Fh4\u003E\u003Cp\u003E这一个月,感觉也是断断续续,\u003Cbr\u003E毕竟本专业还要上课,主要通过\u003Cbr\u003E\u003Cb\u003E看教程、做笔记、写博文构建知识体系,通过小项目驱动学习\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E首先还是有收获\u003Cbr\u003E1、\u003Cb\u003E乐趣\u003C\u002Fb\u003E。发现了自己的兴趣原来在编程,爬虫简直打开了一个新世界。\u003Cbr\u003E每一次爬虫,就像升级打怪,万一通关,成就感满满。(反正比做实验好玩多了)\u003Cbr\u003E2、\u003Cb\u003E从迷茫到很忙\u003C\u002Fb\u003E。发现编程这一行牛人好多,自己要学的东西也好多呀。\u003Cbr\u003E3、\u003Cb\u003E告别依赖\u003C\u002Fb\u003E。貌似开始学会自己独立思考、解决各种问题,有自己的想法很重要,再不济“它山之石,可以攻玉”。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E问题也不少\u003Cbr\u003E1、感觉爬虫 \u003Cb\u003E上手快精通难\u003C\u002Fb\u003E,深入学习的动力貌似不足,基础存在漏洞\u003Cbr\u003E2、专注度不够 \u003Cb\u003E效率低\u003C\u002Fb\u003E,要是有大神带带就好啦\u003Cbr\u003E3、写的是技术文,却发现自己貌似渐渐奔往\u003Cb\u003E 段子手\u003C\u002Fb\u003E 的路上,怎么回事?\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E一个月的爬虫学习,算是入门了吧。\u003Cbr\u003E接下来就是学习PhantomJS动态页面、模拟登录破解验证码、多线程、Scrapy及mongodb数据库等等,得慢慢来。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E\u003Cb\u003E不管如何,做自己喜欢的事情,\u003C\u002Fb\u003E\u003Cb\u003E真好。\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E\u003Cb\u003E作于 22:40\u003C\u002Fb\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003C\u002Fblockquote\u003E\u003Cbr\u003E\u003Cp\u003E上面就是小白的学习路线,详情也可以见\u003C\u002Fp\u003E\u003Cp\u003E简书文集:\u003Ca href=\&http:\u002F\u002Flink.zhihu.com\u002F?target=http%3A\u002F\u002Fwww.jianshu.com\u002Fnb\u002F\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003Epython爬虫实战日记 - 文集 - 简书\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E之后会把上面的项目慢慢搬到这里\u003C\u002Fp\u003E\u003Cp\u003E同时学习进度也会持续更新中,感兴趣欢迎关注。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cbr\u003E\u003Cp\u003E(目前仍在学习阶段,个中不足之处请各位大神多多指教。)\u003C\u002Fp\u003E\u003Cp\u003E人生苦短,我用Python。\u003C\u002Fp\u003E\u003Cp\u003E大数据时代,期待与你一同进步。\u003C\u002Fp\u003E&,&updated&:new Date(&T11:45:23.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:130,&collapsedCount&:0,&likeCount&:314,&state&:&published&,&isLiked&:false,&slug&:&&,&lastestTipjarors&:[{&isFollowed&:false,&name&:&孙琛&,&headline&:&如果这世上有奇迹的\n那只是努力的另一个名字&,&avatarUrl&:&https:\u002F\u002Fpic4.zhimg.com\u002Fv2-489dcbae66ab9a224e5f657aa076b120_s.jpg&,&isFollowing&:false,&type&:&people&,&slug&:&sun-chen-58-33&,&bio&:&&,&hash&:&7b155e139f05b368d437&,&uid&:475100,&isOrg&:false,&description&:&如果这世上有奇迹的\n那只是努力的另一个名字&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fsun-chen-58-33&,&avatar&:{&id&:&v2-489dcbae66ab9a224e5f657aa076b120&,&template&:&https:\u002F\u002Fpic4.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},{&isFollowed&:false,&name&:&武舞&,&headline&:&&,&avatarUrl&:&https:\u002F\u002Fpic4.zhimg.com\u002Ff0def946257_s.jpg&,&isFollowing&:false,&type&:&people&,&slug&:&zhao-qian-46-21&,&bio&:null,&hash&:&e2358feeddec&,&uid&:20,&isOrg&:false,&description&:&&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fzhao-qian-46-21&,&avatar&:{&id&:&f0def946257&,&template&:&https:\u002F\u002Fpic4.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},{&isFollowed&:false,&name&:&没文采&,&headline&:&喜欢健身和新奇的知识!&,&avatarUrl&:&https:\u002F\u002Fpic1.zhimg.com\u002Fcebb9f6e8eca98ef77d64_s.jpg&,&isFollowing&:false,&type&:&people&,&slug&:&zhu-hao-ran-72-59&,&bio&:&修电脑&,&hash&:&a82d488eac8e7d16f19c225&,&uid&:483700,&isOrg&:false,&description&:&喜欢健身和新奇的知识!&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fzhu-hao-ran-72-59&,&avatar&:{&id&:&cebb9f6e8eca98ef77d64&,&template&:&https:\u002F\u002Fpic1.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},{&isFollowed&:false,&name&:&知行合一&,&headline&:&&,&avatarUrl&:&https:\u002F\u002Fpic4.zhimg.com\u002Fda8e974dc_s.jpg&,&isFollowing&:false,&type&:&people&,&slug&:&zhou-xiao-long-91-41&,&bio&:&装配工人&,&hash&:&fd2c87ecaa5&,&uid&:121700,&isOrg&:false,&description&:&&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fzhou-xiao-long-91-41&,&avatar&:{&id&:&da8e974dc&,&template&:&https:\u002F\u002Fpic4.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false}],&isTitleImageFullScreen&:false,&rating&:&none&,&titleImage&:&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-388e9b9f1febdedc5e42f889cf1ddcb6_r.jpg&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&reviewers&:[],&topics&:[{&url&:&https:\u002F\u002Fwww.zhihu.com\u002Ftopic\u002F&,&id&:&&,&name&:&爬虫 (计算机网络)&},{&url&:&https:\u002F\u002Fwww.zhihu.com\u002Ftopic\u002F&,&id&:&&,&name&:&Python&},{&url&:&https:\u002F\u002Fwww.zhihu.com\u002Ftopic\u002F&,&id&:&&,&name&:&自学编程&}],&adminClosedComment&:false,&titleImageSize&:{&width&:900,&height&:600},&href&:&\u002Fapi\u002Fposts\u002F&,&excerptTitle&:&&,&column&:{&slug&:&Waking-up&,&name&:&Python 爬虫实战日记&},&tipjarState&:&activated&,&tipjarTagLine&:&真诚赞赏,手留余香&,&sourceUrl&:&&,&pageCommentsCount&:130,&tipjarorCount&:4,&annotationAction&:[],&hasPublishingDraft&:false,&snapshotUrl&:&&,&publishedTime&:&T19:45:23+08:00&,&url&:&\u002Fp\u002F&,&lastestLikers&:[{&bio&:null,&isFollowing&:false,&hash&:&fc2b6dc16cf64903ddb2a1&,&uid&:853800,&isOrg&:false,&slug&:&landed&,&isFollowed&:false,&description&:&&,&name&:&landed&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Flanded&,&avatar&:{&id&:&da8e974dc&,&template&:&https:\u002F\u002Fpic4.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},{&bio&:null,&isFollowing&:false,&hash&:&0df5b6c3addf7f6ea4aacd&,&uid&:963000,&isOrg&:false,&slug&:&wang-kai-xuan-65-36&,&isFollowed&:false,&description&:&&,&name&:&王凯旋&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fwang-kai-xuan-65-36&,&avatar&:{&id&:&048beb36a604b3b2649d&,&template&:&https:\u002F\u002Fpic3.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},{&bio&:&&,&isFollowing&:false,&hash&:&4a5ba844c17e872c167b&,&uid&:074200,&isOrg&:false,&slug&:&zhang-ze-yi-21-54&,&isFollowed&:false,&description&:&&,&name&:&张泽奕&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fzhang-ze-yi-21-54&,&avatar&:{&id&:&v2-849e2b246bf76ab27758&,&template&:&https:\u002F\u002Fpic3.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},{&bio&:&数据分析&,&isFollowing&:false,&hash&:&cbe99ff4fdeefe5&,&uid&:112600,&isOrg&:false,&slug&:&ben-xiao-hai-47-2&,&isFollowed&:false,&description&:&&,&name&:&笨小孩&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fben-xiao-hai-47-2&,&avatar&:{&id&:&da8e974dc&,&template&:&https:\u002F\u002Fpic4.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},{&bio&:&法乎其上,得乎其中&,&isFollowing&:false,&hash&:&fbcaa0f24ab60000e0bf&,&uid&:317300,&isOrg&:false,&slug&:&gao-leng-de-zhu&,&isFollowed&:false,&description&:&最厌恶的东西(非人):正义凌然的嘴脸和懒于思考的脑子。&,&name&:&高冷的猪&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fgao-leng-de-zhu&,&avatar&:{&id&:&v2-55d3f267a210ccd165ae24f0e46a838d&,&template&:&https:\u002F\u002Fpic4.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false}],&summary&:&\u003Cimg src=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-477ded2dffb0c951ea25f173_200x112.jpg\& data-rawwidth=\&1063\& data-rawheight=\&1557\& class=\&origin_image inline-img zh-lightbox-thumb\& data-original=\&https:\u002F\u002Fpic1.zhimg.com\u002Fv2-477ded2dffb0c951ea25f173_r.jpg\&\u003E其实一个知乎小透明。大三学生。自学python爬虫大概一个月多一点。最开始是在简书上写博客,记录学习中项目和问题。一直到前几天\u003Cb\u003E\&Python开发者社区\&\u003C\u002Fb\u003E专栏编辑找到我 作为一个小白,震惊了。后面萌生了在\u003Cb\u003E知乎上记录学习项目\u003C\u002Fb\u003E的想法,试着申请了下,居然通过了…&,&reviewingCommentsCount&:0,&meta&:{&previous&:null,&next&:{&isTitleImageFullScreen&:false,&rating&:&none&,&titleImage&:&https:\u002F\u002Fpic1.zhimg.com\u002F50\u002Fv2-e480ffd864_xl.jpg&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&topics&:[{&url&:&https:\u002F\u002Fwww.zhihu.com\u002Ftopic\u002F&,&id&:&&,&name&:&爬虫 (计算机网络)&},{&url&:&https:\u002F\u002Fwww.zhihu.com\u002Ftopic\u002F&,&id&:&&,&name&:&自学编程&},{&url&:&https:\u002F\u002Fwww.zhihu.com\u002Ftopic\u002F&,&id&:&&,&name&:&Python&}],&adminClosedComment&:false,&href&:&\u002Fapi\u002Fposts\u002F&,&excerptTitle&:&&,&author&:{&bio&:&知足常乐&,&isFollowing&:false,&hash&:&3b7e8b837dc82a5ab235&,&uid&:412000,&isOrg&:false,&slug&:&wei-yan-ying-12&,&isFollowed&:false,&description&:&http:\u002F\u002Fweiyanying.com&,&name&:&Wakingup&,&profileUrl&:&https:\u002F\u002Fwww.zhihu.com\u002Fpeople\u002Fwei-yan-ying-12&,&avatar&:{&id&:&v2-cbfe031c09f0a9d6825f3c&,&template&:&https:\u002F\u002Fpic1.zhimg.com\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},&column&:{&slug&:&Waking-up&,&name&:&Python 爬虫实战日记&},&content&:&\u003Cp\u003EPython小白,刚学习爬虫不久,会一般的静态网页抓取,动手来写第一个例子。\u003Cbr\u003E\u003C\u002Fp\u003E\u003Ch2\u003E一、目标\u003C\u002Fh2\u003E\u003Cp\u003E
1、抓取糗事百科热门帖,获取其**发布者**、**评论(及数量)**、**赞踩(及数量)**等\u003C\u002Fp\u003E\u003Cp\u003E
2、将信息清洗并打印,循环输出\u003C\u002Fp\u003E\u003Cp\u003E
3、设计程序,使可以选择抓取的页面范围 \u003C\u002Fp\u003E\u003Cp\u003E
4、将每一页的信息保存到文本\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cbr\u003E\u003Ch2\u003E二、开发环境介绍\u003C\u002Fh2\u003E\u003Cp\u003E
phthon 2.7.13\u003C\u002Fp\u003E\u003Cp\u003E
IDE:PyCharm\t\u003C\u002Fp\u003E\u003Cp\u003E
采用库:re、requests、time\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cbr\u003E\u003Ch2\u003E三、步骤\u003C\u002Fh2\u003E\u003Cp\u003E1、\u003Cstrong\u003E获取源码\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp\u003E\t首先用requests库的get方法获取首页源代码\u003C\u002Fp\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-python\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Euser_agent\u003C\u002Fspan\u003E \u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E \u003Cspan class=\&s1\&\u003E'Mozilla\u002F5.0 (Windows NT 6.2; WOW64) AppleWebKit\u002F537.36 (KHTML, like Gecko) Chrome\u002F45.0. Safari\u002F537.36'\u003C\u002Fspan\u003E
\n\u003Cspan class=\&n\&\u003Eheaders\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E{\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003E'User_agent'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E:\u003C\u002Fspan\u003E \u003Cspan class=\&n\&\u003Euser_agent\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E}\u003C\u002Fspan\u003E
\n\u003Cspan class=\&n\&\u003Er\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Erequests\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eget\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eurl\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eheaders\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eheaders\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E
\n\u003Cspan class=\&n\&\u003Eresult\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Er\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Etext\u003C\u002Fspan\u003E
\n\u003Cspan class=\&k\&\u003Eprint\u003C\u002Fspan\u003E \u003Cspan class=\&n\&\u003Eresult\u003C\u002Fspan\u003E\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E结果输出如下\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cfigure\u003E\u003Cimg src=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-d88dddf6ef20dacb5c12_b.jpg\& data-rawwidth=\&879\& data-rawheight=\&471\& class=\&origin_image zh-lightbox-thumb\& width=\&879\& data-original=\&https:\u002F\u002Fpic3.zhimg.com\u002Fv2-d88dddf6ef20dacb5c12_r.jpg\&\u003E\u003C\u002Ffigure\u003E\u003Cbr\u003E\u003Cp\u003E\u003Cstrong\u003E2、匹配\u003C\u002Fstrong\u003E\u003Cb\u003E正则\u003C\u002Fb\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E如图所示\u003C\u002Fp\u003E\u003Cp\u003E打开360浏览器,右键点击审查元素,可以清晰的看到**发布者**、**年龄**、**发布内容**、**评论数**等的分布及标签构造,根据关键词可以匹配正则。设置循环,打印输出。\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-python\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Epattern\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Ere\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Ecompile\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003E'&div class=\&author.*?&h2&(.*?)&\u002Fh2&.*?Icon\&&(.*?)&\u002Fdiv&.*?&div class=\&content\&&.*?&span&(.*?)&\u002Fspan&.*?&span.*?stats-vote.*?number\&&(.*?)&\u002Fi&.*?stats-comments.*?number\&&(.*?)&\u002Fi&.*?up.*?number hidden\&&(.*?)&\u002Fspan&.*?down.*?number hidden\&&(.*?)&\u002Fspan&'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Ere\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003ES\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E
\n\u003Cspan class=\&n\&\u003Eitems\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Ere\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Efindall\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Epattern\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eresult\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E \n\u003Cspan class=\&n\&\u003Enumber\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&mi\&\u003E1\u003C\u002Fspan\u003E
\n\u003Cspan class=\&k\&\u003Efor\u003C\u002Fspan\u003E \u003Cspan class=\&n\&\u003Eitem\u003C\u002Fspan\u003E \u003Cspan class=\&ow\&\u003Ein\u003C\u002Fspan\u003E \u003Cspan class=\&n\&\u003Eitems\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E:\u003C\u002Fspan\u003E
\u003Cspan class=\&k\&\u003Eprint\u003C\u002Fspan\u003E \u003Cspan class=\&s1\&\u003Eu''\u003C\u002Fspan\u003E
\u003Cspan class=\&k\&\u003Eprint\u003C\u002Fspan\u003E \u003Cspan class=\&n\&\u003Enumber\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003Eu'楼'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003Eu'\u003C\u002Fspan\u003E\u003Cspan class=\&se\&\u003E\\n\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003E楼主:'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eitem\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003E\u003Cspan class=\&mi\&\u003E0\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E],\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003Eu''\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eitem\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003E\u003Cspan class=\&mi\&\u003E1\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E],\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003Eu'岁'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003Eu'\u003C\u002Fspan\u003E\u003Cspan class=\&se\&\u003E\\n\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003E发言:'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&bp\&\u003Eself\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Etool\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Ereplace\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eitem\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003E\u003Cspan class=\&mi\&\u003E2\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E]),\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003Eu'\u003C\u002Fspan\u003E\u003Cspan class=\&se\&\u003E\\n\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003E好笑:'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eitem\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003E\u003Cspan class=\&mi\&\u003E3\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E],\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003Eu'\u003C\u002Fspan\u003E\u003Cspan class=\&se\&\u003E\\n\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003E评论:'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eitem\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003E\u003Cspan class=\&mi\&\u003E4\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E],\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003Eu'\u003C\u002Fspan\u003E\u003Cspan class=\&se\&\u003E\\n\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003E赞:'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eitem\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003E\u003Cspan class=\&mi\&\u003E5\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E],\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003Eu'\u003C\u002Fspan\u003E\u003Cspan class=\&se\&\u003E\\n\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003E踩:'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eitem\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003E\u003Cspan class=\&mi\&\u003E6\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E]\u003C\u002Fspan\u003E
\u003Cspan class=\&n\&\u003Etime\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Esleep\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&mf\&\u003E0.1\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E
\u003Cspan class=\&n\&\u003Enumber\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E+=\u003C\u002Fspan\u003E\u003Cspan class=\&mi\&\u003E1\u003C\u002Fspan\u003E\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cbr\u003E\u003Cstrong\u003E\u003Cbr\u003E3、 面向对象\u003C\u002Fstrong\u003E\u003Cbr\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-python\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan class=\&c1\&\u003E#定义一个Spider类
\u003C\u002Fspan\u003E\n\u003Cspan class=\&k\&\u003Eclass\u003C\u002Fspan\u003E \u003Cspan class=\&nc\&\u003ESpider\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&nb\&\u003Eobject\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E):\u003C\u002Fspan\u003E
\u003Cspan class=\&c1\&\u003E#初始化参数
\u003C\u002Fspan\u003E\n
\u003Cspan class=\&k\&\u003Edef\u003C\u002Fspan\u003E \u003Cspan class=\&nf\&\u003E__init__\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&bp\&\u003Eself\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E):\u003C\u002Fspan\u003E
\u003Cspan class=\&bp\&\u003Eself\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003EsiteURL\u003C\u002Fspan\u003E \u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003E'http:\u002F\u002Fwww.qiushibaike.com\u002F'\u003C\u002Fspan\u003E
\u003Cspan class=\&bp\&\u003Eself\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Etool\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003ETool\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E()\u003C\u002Fspan\u003E
\u003Cspan class=\&c1\&\u003E#获取网页源码
\u003C\u002Fspan\u003E\n
\u003Cspan class=\&k\&\u003Edef\u003C\u002Fspan\u003E \u003Cspan class=\&nf\&\u003EgetSource\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&bp\&\u003Eself\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eurl\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E):\u003C\u002Fspan\u003E
\u003Cspan class=\&n\&\u003Euser_agent\u003C\u002Fspan\u003E \u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E \u003Cspan class=\&s1\&\u003E'Mozilla\u002F5.0 (Windows NT 6.2; WOW64) AppleWebKit\u002F537.36 (KHTML, like Gecko) Chrome\u002F45.0. Safari\u002F537.36'\u003C\u002Fspan\u003E
\u003Cspan class=\&n\&\u003Eheaders\u003C\u002Fspan\u003E \u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E \u003Cspan class=\&p\&\u003E{\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003E'User_agent'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E:\u003C\u002Fspan\u003E \u003Cspan class=\&n\&\u003Euser_agent\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E}\u003C\u002Fspan\u003E
\u003Cspan class=\&n\&\u003Er\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Erequests\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eget\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eurl\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eheaders\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eheaders\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E
\u003Cspan class=\&n\&\u003Eresult\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Er\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Etext\u003C\u002Fspan\u003E
\u003Cspan class=\&k\&\u003Ereturn\u003C\u002Fspan\u003E \u003Cspan class=\&n\&\u003Eresult\u003C\u002Fspan\u003E
\u003Cspan class=\&c1\&\u003E#获取详情页信息,并循环打印输出
\u003C\u002Fspan\u003E\n
\u003Cspan class=\&k\&\u003Edef\u003C\u002Fspan\u003E \u003Cspan class=\&nf\&\u003EgetDetailPage\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&bp\&\u003Eself\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003EdetailURL\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E):\u003C\u002Fspan\u003E
\u003Cspan class=\&n\&\u003Esource\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&bp\&\u003Eself\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003EgetSource\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003EdetailURL\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E
\u003Cspan class=\&n\&\u003Epattern\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Ere\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Ecompile\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003E'&div class=\&author.*?&h2&(.*?)&\u002Fh2&.*?Icon\&&(.*?)&\u002Fdiv&.*?&div class=\&content\&&.*?&span&(.*?)&\u002Fspan&.*?&span.*?stats-vote.*?number\&&(.*?)&\u002Fi&.*?stats-comments.*?number\&&(.*?)&\u002Fi&.*?up.*?number hidden\&&(.*?)&\u002Fspan&.*?down.*?number hidden\&&(.*?)&\u002Fspan&'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Ere\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003ES\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E
\u003Cspan class=\&n\&\u003Eitems\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Ere\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Efindall\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Epattern\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Esource\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E
\u003Cspan class=\&n\&\u003Enumber\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&mi\&\u003E1\u003C\u002Fspan\u003E
\u003Cspan class=\&k\&\u003Efor\u003C\u002Fspan\u003E \u003Cspan class=\&n\&\u003Eitem\u003C\u002Fspan\u003E \u003Cspan class=\&ow\&\u003Ein\u003C\u002Fspan\u003E \u003Cspan class=\&n\&\u003Eitems\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E:\u003C\u002Fspan\u003E
\u003Cspan class=\&k\&\u003Eprint\u003C\u002Fspan\u003E \u003Cspan class=\&s1\&\u003Eu''\u003C\u002Fspan\u003E
\u003Cspan class=\&k\&\u003Eprint\u003C\u002Fspan\u003E \u003Cspan class=\&n\&\u003Enumber\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003Eu'楼'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003Eu'\u003C\u002Fspan\u003E\u003Cspan class=\&se\&\u003E\\n\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003E楼主:'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eitem\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003E\u003Cspan class=\&mi\&\u003E0\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E],\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003Eu''\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eitem\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003E\u003Cspan class=\&mi\&\u003E1\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E],\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003Eu'岁'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003Eu'\u003C\u002Fspan\u003E\u003Cspan class=\&se\&\u003E\\n\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003E发言:'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&bp\&\u003Eself\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Etool\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Ereplace\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eitem\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003E\u003Cspan class=\&mi\&\u003E2\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E]),\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003Eu'\u003C\u002Fspan\u003E\u003Cspan class=\&se\&\u003E\\n\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003E好笑:'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eitem\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003E\u003Cspan class=\&mi\&\u003E3\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E],\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003Eu'\u003C\u002Fspan\u003E\u003Cspan class=\&se\&\u003E\\n\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003E评论:'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eitem\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003E\u003Cspan class=\&mi\&\u003E4\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E],\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003Eu'\u003C\u002Fspan\u003E\u003Cspan class=\&se\&\u003E\\n\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003E赞:'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eitem\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003E\u003Cspan class=\&mi\&\u003E5\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E],\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003Eu'\u003C\u002Fspan\u003E\u003Cspan class=\&se\&\u003E\\n\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003E踩:'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eitem\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003E\u003Cspan class=\&mi\&\u003E6\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E]\u003C\u002Fspan\u003E
\u003Cspan class=\&n\&\u003Etime\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Esleep\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&mf\&\u003E0.1\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E
\u003Cspan class=\&n\&\u003Enumber\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E+=\u003C\u002Fspan\u003E\u003Cspan class=\&mi\&\u003E1\u003C\u002Fspan\u003E
\u003Cspan class=\&k\&\u003Ereturn\u003C\u002Fspan\u003E \u003Cspan class=\&n\&\u003Eitems\u003C\u002Fspan\u003E\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cbr\u003E\u003Cp\u003E\u003Cstrong\u003E4、数据清洗\u003C\u002Fstrong\u003E\u003Cbr\u003E可以看到所得代码中含较多的&\u002Fbr&&br&&br \u002F&等标签,可以定义一个Tool类进行清洗。\u003C\u002Fp\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-python\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan class=\&k\&\u003Eclass\u003C\u002Fspan\u003E \u003Cspan class=\&nc\&\u003ETool\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E():\u003C\u002Fspan\u003E
\u003Cspan class=\&k\&\u003Edef\u003C\u002Fspan\u003E \u003Cspan class=\&nf\&\u003Ereplace\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&bp\&\u003Eself\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Ex\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E):\u003C\u002Fspan\u003E
\u003Cspan class=\&n\&\u003Ex\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Ere\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Esub\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Ere\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Ecompile\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003E'&br&|&\u002Fbr&|\u002F&|&br'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E),\u003C\u002Fspan\u003E\u003Cspan class=\&s2\&\u003E\&\&\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Ex\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E
\u003Cspan class=\&k\&\u003Ereturn\u003C\u002Fspan\u003E \u003Cspan class=\&n\&\u003Ex\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Estrip\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E()\u003C\u002Fspan\u003E
\n\u003C\u002Fcode\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E\u003Cstrong\u003E5、文本保存\u003C\u002Fstrong\u003E\u003Cbr\u003E定义一个saveDetailPage函数,传入文件名和数据,在此不赘述\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Cstrong\u003E6、获取多页\u003C\u002Fstrong\u003E\u003Cbr\u003E上面的内容我们已经成功用正则表达式匹配出想要的内容,想获取多页,只需设置一个循环即可,所以关键内容来啦!\u003Cbr\u003E观察底面标签可知热门评论共35页,观察网页地址栏可发现规律:\u003Cbr\u003E首页 url即'\u003Ca href=\&https:\u002F\u002Flink.zhihu.com\u002F?target=http%3A\u002F\u002Fwww.qiushibaike.com\u002F\& class=\& external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E\u003Cspan class=\&invisible\&\u003Ehttp:\u002F\u002Fwww.\u003C\u002Fspan\u003E\u003Cspan class=\&visible\&\u003Eqiushibaike.com\u002F\u003C\u002Fspan\u003E\u003Cspan class=\&invisible\&\u003E\u003C\u002Fspan\u003E\u003C\u002Fa\u003E',从第二页开始为 url+\u002F8hr\u002Fpage\u002Fx\u002F?s=4964698
\u003C\u002Fp\u003E\u003Cp\u003E可以推测:8hr为8小时内最热门,x即页数,后面s=4964698,猜测是访问该网站的总次数,因为如果在同一个会话中,s是相同的。而另外打开访问时s又不同,且每次发现s有增加!\u003Cbr\u003E由以上分析,我们要遍历这35页,要分情况讨论。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Ch2\u003E四、代码\u003C\u002Fh2\u003E\u003Cdiv class=\&highlight\&\u003E\u003Cpre\u003E\u003Ccode class=\&language-python\&\u003E\u003Cspan\u003E\u003C\u002Fspan\u003E\u003Cspan class=\&ch\&\u003E#!\u002Fusr\u002Fbin\u002Fenv python
\u003C\u002Fspan\u003E\n\u003Cspan class=\&c1\&\u003E# -*- coding: utf-8 -*-
\u003C\u002Fspan\u003E\n
\n\u003Cspan class=\&kn\&\u003Eimport\u003C\u002Fspan\u003E \u003Cspan class=\&nn\&\u003Ere\u003C\u002Fspan\u003E
\n\u003Cspan class=\&kn\&\u003Eimport\u003C\u002Fspan\u003E \u003Cspan class=\&nn\&\u003Erequests\u003C\u002Fspan\u003E
\n\u003Cspan class=\&kn\&\u003Eimport\u003C\u002Fspan\u003E \u003Cspan class=\&nn\&\u003Etime\u003C\u002Fspan\u003E
\n\u003Cspan class=\&c1\&\u003E#定义一个Tool类,方便用replace方法把换行符等删除
\u003C\u002Fspan\u003E\n\u003Cspan class=\&k\&\u003Eclass\u003C\u002Fspan\u003E \u003Cspan class=\&nc\&\u003ETool\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E():\u003C\u002Fspan\u003E
\u003Cspan class=\&k\&\u003Edef\u003C\u002Fspan\u003E \u003Cspan class=\&nf\&\u003Ereplace\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&bp\&\u003Eself\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Ex\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E):\u003C\u002Fspan\u003E
\u003Cspan class=\&n\&\u003Ex\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Ere\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Esub\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Ere\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Ecompile\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003E'&br&|&\u002Fbr&|\u002F&|&br'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E),\u003C\u002Fspan\u003E\u003Cspan class=\&s2\&\u003E\&\&\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Ex\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E
\u003Cspan class=\&k\&\u003Ereturn\u003C\u002Fspan\u003E \u003Cspan class=\&n\&\u003Ex\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Estrip\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E()\u003C\u002Fspan\u003E
\n\u003Cspan class=\&c1\&\u003E#定义一个Spider类
\u003C\u002Fspan\u003E\n\u003Cspan class=\&k\&\u003Eclass\u003C\u002Fspan\u003E \u003Cspan class=\&nc\&\u003ESpider\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&nb\&\u003Eobject\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E):\u003C\u002Fspan\u003E
\u003Cspan class=\&c1\&\u003E#初始化参数
\u003C\u002Fspan\u003E\n
\u003Cspan class=\&k\&\u003Edef\u003C\u002Fspan\u003E \u003Cspan class=\&nf\&\u003E__init__\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&bp\&\u003Eself\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E):\u003C\u002Fspan\u003E
\u003Cspan class=\&bp\&\u003Eself\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003EsiteURL\u003C\u002Fspan\u003E \u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003E'http:\u002F\u002Fwww.qiushibaike.com\u002F'\u003C\u002Fspan\u003E
\u003Cspan class=\&bp\&\u003Eself\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Etool\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003ETool\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E()\u003C\u002Fspan\u003E
\u003Cspan class=\&c1\&\u003E#获取网页源码
\u003C\u002Fspan\u003E\n
\u003Cspan class=\&k\&\u003Edef\u003C\u002Fspan\u003E \u003Cspan class=\&nf\&\u003EgetSource\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&bp\&\u003Eself\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eurl\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E):\u003C\u002Fspan\u003E
\u003Cspan class=\&n\&\u003Euser_agent\u003C\u002Fspan\u003E \u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E \u003Cspan class=\&s1\&\u003E'Mozilla\u002F5.0 (Windows NT 6.2; WOW64) AppleWebKit\u002F537.36 (KHTML, like Gecko) Chrome\u002F45.0. Safari\u002F537.36'\u003C\u002Fspan\u003E
\u003Cspan class=\&n\&\u003Eheaders\u003C\u002Fspan\u003E \u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E \u003Cspan class=\&p\&\u003E{\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003E'User_agent'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E:\u003C\u002Fspan\u003E \u003Cspan class=\&n\&\u003Euser_agent\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E}\u003C\u002Fspan\u003E
\u003Cspan class=\&n\&\u003Er\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Erequests\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eget\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eurl\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eheaders\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eheaders\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E
\u003Cspan class=\&n\&\u003Eresult\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Er\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Etext\u003C\u002Fspan\u003E
\u003Cspan class=\&k\&\u003Ereturn\u003C\u002Fspan\u003E \u003Cspan class=\&n\&\u003Eresult\u003C\u002Fspan\u003E
\u003Cspan class=\&c1\&\u003E#获取详情页信息,并循环打印输出
\u003C\u002Fspan\u003E\n
\u003Cspan class=\&k\&\u003Edef\u003C\u002Fspan\u003E \u003Cspan class=\&nf\&\u003EgetDetailPage\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&bp\&\u003Eself\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003EdetailURL\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E):\u003C\u002Fspan\u003E
\u003Cspan class=\&n\&\u003Esource\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&bp\&\u003Eself\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003EgetSource\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003EdetailURL\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E
\u003Cspan class=\&n\&\u003Epattern\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Ere\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Ecompile\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003E'&div class=\&author.*?&h2&(.*?)&\u002Fh2&.*?Icon\&&(.*?)&\u002Fdiv&.*?&div class=\&content\&&.*?&span&(.*?)&\u002Fspan&.*?&span.*?stats-vote.*?number\&&(.*?)&\u002Fi&.*?stats-comments.*?number\&&(.*?)&\u002Fi&.*?up.*?number hidden\&&(.*?)&\u002Fspan&.*?down.*?number hidden\&&(.*?)&\u002Fspan&'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Ere\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003ES\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E
\u003Cspan class=\&n\&\u003Eitems\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Ere\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Efindall\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Epattern\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Esource\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E)\u003C\u002Fspan\u003E
\u003Cspan class=\&n\&\u003Enumber\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E=\u003C\u002Fspan\u003E\u003Cspan class=\&mi\&\u003E1\u003C\u002Fspan\u003E
\u003Cspan class=\&k\&\u003Efor\u003C\u002Fspan\u003E \u003Cspan class=\&n\&\u003Eitem\u003C\u002Fspan\u003E \u003Cspan class=\&ow\&\u003Ein\u003C\u002Fspan\u003E \u003Cspan class=\&n\&\u003Eitems\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E:\u003C\u002Fspan\u003E
\u003Cspan class=\&k\&\u003Eprint\u003C\u002Fspan\u003E \u003Cspan class=\&s1\&\u003Eu''\u003C\u002Fspan\u003E
\u003Cspan class=\&k\&\u003Eprint\u003C\u002Fspan\u003E \u003Cspan class=\&n\&\u003Enumber\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003Eu'楼'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003Eu'\u003C\u002Fspan\u003E\u003Cspan class=\&se\&\u003E\\n\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003E楼主:'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eitem\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003E\u003Cspan class=\&mi\&\u003E0\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E],\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003Eu''\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eitem\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003E\u003Cspan class=\&mi\&\u003E1\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E],\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003Eu'岁'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003Eu'\u003C\u002Fspan\u003E\u003Cspan class=\&se\&\u003E\\n\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003E发言:'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&bp\&\u003Eself\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Etool\u003C\u002Fspan\u003E\u003Cspan class=\&o\&\u003E.\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Ereplace\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E(\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eitem\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003E\u003Cspan class=\&mi\&\u003E2\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E]),\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003Eu'\u003C\u002Fspan\u003E\u003Cspan class=\&se\&\u003E\\n\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003E好笑:'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eitem\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003E\u003Cspan class=\&mi\&\u003E3\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E],\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003Eu'\u003C\u002Fspan\u003E\u003Cspan class=\&se\&\u003E\\n\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003E评论:'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eitem\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003E\u003Cspan class=\&mi\&\u003E4\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E],\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003Eu'\u003C\u002Fspan\u003E\u003Cspan class=\&se\&\u003E\\n\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003E赞:'\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E,\u003C\u002Fspan\u003E\u003Cspan class=\&n\&\u003Eitem\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E[\u003C\u002Fspan\u003E\u003Cspan class=\&mi\&\u003E5\u003C\u002Fspan\u003E\u003Cspan class=\&p\&\u003E],\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003Eu'\u003C\u002Fspan\u003E\u003Cspan class=\&se\&\u003E\\n\u003C\u002Fspan\u003E\u003Cspan class=\&s1\&\u003E踩:&#x

我要回帖

 

随机推荐