第一次python,第一次爬虫

Posted by Cww97 on 2016-06-02

版权声明:本文为博主原创文章,未经博主允许不得转载。原文所在http://blog.csdn.net/cww97 https://blog.csdn.net/cww97/article/details/51560184
一切的一切源于这学期选了门大数据与搜索引擎这门课
作业啊(一把眼泪
这里写图片描述

=======================陈伟文=10125210217====================
amzon.txt是该童车第一页评论用BeautifulSoup改的规范的网页代码(不要在意拼写错误

通过对网页和代码的观察发现:要爬的评论都有固定格式,比如第一个

1
2
3
<span class="a-size-base review-text">
收到一堆破烂连充电器都没有螺丝板子等工具都没有。
</span>

所以重点是这里:

1
>>>soup.find_all('span', attrs={"class": "a-size-base review-text"})

前面还用过find_all(“span”)等一系列find姿势,结果出来很多多余的东西

结果跑出来发现第一页10条评论只爬出来7个
最后发现问题在这

1
2
3
4
5
6
7
8
9
10
11
<span class="a-size-base review-text">
收到之后有灰尘,要我自己擦干净在组装。
<br/>
还有我的发票在那里?
<br/>
<br/>
上述别人的问题我也有.
<br/>
<br/>
另外,既然需要安装,安装说明书应该清楚易懂,可惜厂家给的说明书很粗糙,安装步骤只有文字说明没有配图...很不方便
</span>

有3个评论里面带回车,没能find出来,还没能解决这个问题(目前只把其他的几个爬了出来- -

comments.py是爬评论的代码
其中get_comments函数是获取某一页的评论
网页上看见一共6页,就写了个6上去
(python版本3.5.1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import urllib.request
from bs4 import BeautifulSoup

webheader = {
'Connection': 'Keep-Alive',
'Accept': 'text/html, application/xhtml+xml, */*',
'Accept-Language': 'en-US,en;q=0.8,zh-Hans-CN;q=0.5,zh-Hans;q=0.3',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko',
#'Accept-Encoding': 'gzip, deflate',
'Host': 'www.douban.com',
'DNT': '1'
}

def get_comments(weburl):
req = urllib.request.Request(url=weburl, headers=webheader)
webPage=urllib.request.urlopen(req)
data = webPage.read()
data = data.decode('UTF-8')
soup = BeautifulSoup(data,"lxml")
for list in soup.find_all('span', attrs={"class": "a-size-base review-text"}):
st = list.string
if st != None and st[0] != '¥':
f.write(st)
f.write("\n")

f = open("result.txt", "w")#get comments of one childrenbike
f.write("""
==============================
by cww97
here is the children bike
https://www.amazon.cn/%E5%AD%A9%E5%AD%90%E5%AE%B6%E4%B8%89%E8%BD%AE%E8%BD%A6%E5%84%BF%E7%AB%A5%E7%94%B5%E5%8A%A8%E6%91%A9%E6%89%98%E8%BD%A6-%E5%84%BF%E7%AB%A5%E7%94%B5%E5%8A%A8%E8%BD%A6-%E7%AB%A5%E8%BD%A6%E7%8E%A9%E5%85%B7%E8%BD%A6%E5%84%BF%E7%AB%A5%E5%8F%AF%E5%9D%90/dp/B00DQGTK4W/ref=sr_1_2?ie=UTF8&qid=1464775734&sr=8-2&keywords=%E7%AB%A5%E8%BD%A6" \

===============================
""")

for i in range(6):
url = "https://www.amazon.cn/product-reviews/B00DQGTK4W/ref=cm_cr_dp_see_all_summary?ie=UTF8&showViewpoints=%d&sortBy=helpful"%(i+1)
get_comments(url)

result.txt是爬出的结果,输出文件(巨丑,大概张这样
这里写图片描述

(PS:不是很清楚老师是叫我们爬一个童车的评论还是所有的,如果是后者,其实我写的还不算成功(认怂= =)
之前看过一点点python的语法,这次直接上来写这个,一开始准备写爬虫的论文的,然后问学长们说这很简单,
而且还+10分,果断写爬虫代码不写论文了,也请老师对本篇“实验报告”不要用太专业的眼光来看- -(完))

===========================参考资料===============================
http://beautifulsoup.readthedocs.io/zh_CN/latest/#find-all
http://docs.python-requests.org/zh_CN/latest/user/quickstart.htmlhttp://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000
http://blog.csdn.net/evankaka/article/details/46849095
http://blog.csdn.net/omuyejingfeng1/article/details/24182313
https://github.com/joway/PythonSpider/blob/master/JandanSpider.py
http://www.jianshu.com/p/a5f1df34d184
==================by cww97=2016.6.1=23:46=========================
最后感谢Joway童鞋&&HAN童鞋的指引
感谢Joway童鞋&&HAN童鞋的指引
感谢Joway童鞋&&HAN童鞋的指引(说三遍)
=============================真完了===============================