今天工作原因需要用到爬虫,发现之前的代码有部分不可行了;因为先前用的是python2,但我在公司电脑上装的是python3;翻看先前的代码思路,也发现有些地方比较模糊,所以写个补充篇。
首先,在python3中,已经不存在urllib2了(python3中将urllib2,urlparse,robotparser三个库合并到了urllib中;现在urllib中包含了urllib.parse,urllib.request,urllib.response,urllib.error,urllib.robotparser五个模块)。
而我们想要用的urllib2.urlopen()(用来打开url网址)也已经不复存在了,它现在变成了urllib.request.urlopen()。所以我们需要把先前的代码改为:
page = urllib.request.urlopen(url).read()
其次,创建数据表的时候,我没有解释pd的import哎(虽然大家基本都知道啦,但我确实遗漏了)。需补充:
import pandas as pd
另者,在今天的爬取过程中,明明我取的都是<td>内的文本,但不知到为什么爬下来的每页的数据首行都是本页所有需爬取的内容………本菜鸟看了半天网页源码真的看不到哪里有全部数据信息。无奈只好选了下策:每页从第二行数据开始爬…
可以用python的islice实现:
from itertools import islice #import
…
#找到对象中所有<td>标签内的内容,选择第一到最后一个数据执行for语句
#数据从第0个开始,满足左闭右开
for link in islice(soup.find_all('td'),1,None):
context = link.get_text()
date.append(context)
print('当前正在抓取'+str(i)+'年'+str(j)+'月的数据')
这里边的内容还有很多可学,比如我还没有完全依赖正则解析过;学了点皮毛就丢开了,这两个月会抽时间大补网络爬虫的(其实我最近有在学python哦,不过方向不太一致,刚好最近买的python书里也有大块的内容)
这段时间会将自己大半年的学习笔记理理,可能会po一点出来;之前有玩过一个sql执行到excel邮件自动发送的脚本,明后天也会po出来,简单但还蛮有意思的,可以跟我一起试一下呐。
以上,
徐胥。