半自动爬虫-新手
作业要求:百度贴吧中寻找一个自己喜欢的贴吧,将其中的一片热门帖子的每一层楼的发帖人、发帖内容和发帖时间抓取下来
需要准备的是,能够理解正则表达式的运用,基础的python语法就可以很快搞定,python语言和大多数java、c只要些许的不同,间隔需把握好,工具下面采用sublime text3/IDEL。
第一步:找到自己喜欢的贴吧的源元素,另存为.txt文件
第二步:文件操作
with open('xxx文件名') as fr:
fr.read()
f是一个文件对象,我们用它来对文件进行读的操作。
读取文件的内容,下面就是想办法把我们想看到的信息分离出来
第三步:只获取想看到的信息
引入re 模块,因为python语言是不能理解正则表达式的,所以需要有一个中间人,帮它翻译。
searchAuthor = re.findall(r'=pb" target="_blank">(.*?)<',fr)
searchDate = re.findall(r'tail-info">(.*?)</span',fr)
searchCon = re.findall(r'display:;"> (.*?)</div',fr)
因为我所截取的信息前后是这样的,所以每个网页获取的信息 正则表达式会不一样,需要大家仔细观察。
第四步:按照作者、时间、内容一一对应打印出来
因为.findall(r’’,string)方法返回的是一个列表[],访问时可以直接使用下标,用for语句控制循环,回帖作者数与时间内容数是一致的,所以就直接使用作