网络空间安全概论 实验7网络爬虫 知乎爬虫_第1页
网络空间安全概论 实验7网络爬虫 知乎爬虫_第2页
网络空间安全概论 实验7网络爬虫 知乎爬虫_第3页
网络空间安全概论 实验7网络爬虫 知乎爬虫_第4页
网络空间安全概论 实验7网络爬虫 知乎爬虫_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中国矿业大学计算机学院2018级本科生课程报告课程名称信息内容安全报告题目知乎爬虫报告时间2021.7.6姓名何俊辉学号08182819任课教师曹天杰2020-2021(二)《信息内容安全》课程报告评分表序号毕业要求课程教学目标考查方式与考查点占比得分12.3目标1:掌握信息内容安全的基本概念、分类、原理和相关技术,能够根据课程基本知识对信息内容安全领域出现的问题进行归类、分析、并有初步分析和解决问题的能力。通过课堂讲授和课堂研讨掌握信息内容安全概念和理论知识。40%3.2目标2:掌握信息内容安全处理相关的理论、技术以及健全的评价体系,能够根据具体问题分析算法、设计算法、实现算法并能综合评价算法。24.3目标3:掌握信息内容安全的基础知识,针对具体问题和要求选择正确的技术路线,通过在实验环境中进行仿真实验并能根据算法特点进行攻击测试和综合性能评价,得到具有参考价值的结论。课程报告;实现有关信息内容安全的一个软件系统。分析和对比各项技术,选择相应的技术进行算法设计并在实验环境中进行仿真实验和性能评价,得到有效结论。60%总分100%评阅人:2021年7月10日报告摘要 随着网络信息的爆炸式增加,推荐算法愈发成熟,本次报告,使用爬虫技术爬取知乎的问题内容,来从另一层面对抗推荐算法的缺点。 爬虫是一种自动化收集网络信息的工具,可以短时间内得到大量的所需信息。关键词:爬虫;知乎;问题收集;

报告正文1问题提出 现有的推荐模式下,长时间浏览知乎后,推荐的话题会趋于单一的主题。2问题分析 一个八位的索引确定一个问题页面浏览量评估问题的质量 我们可以通过遍历id的方式设计爬虫,并记录下标题和浏览量信息3爬虫设计 此爬虫可以分为三个模块,分别是请求伪造、数据筛选、数据存储。 使用请求伪造模拟浏览器访问知乎网站,并把id作为关键参数。 筛选返回的报文中的有用信息title和views。 最后,把得到的数据存储在本地。3.1请求伪造伪造请求报文,模拟浏览器访问Requests是用python语言基于urllib编写的,采用的是Apache2Licensed开源协议的HTTP库。与urllib相比,Requests更加方便,可以节约我们大量的工作,建议爬虫使用Requests库我们调用requests库中的get方法。UserAgent中文名为用户代理,简称UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。3.2数据筛选 只需要返回报文中的标题和浏览量数据使用beautifulsoup包中的函数可以筛选出html代码中的各种标签内容BeautifulSoup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。BeautifulSoup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,BeautifulSoup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。BeautifulSoup已成为和lxml、html6lib一样出色的python解释器,为用户灵活地提供不同的解析策略或强劲的速度。3.3数据存储 CSV(逗号分隔值文件格式)逗号分隔值(Comma-SeparatedValues,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。把数据存储在当前文件夹的question.csv中 4实验改进4.1IP代理大部分网站都有反爬虫机制,短时间内检测到大量同一IP的请求时,触发验证码或者封禁IP。代理服务器是介于浏览器和Web服务器之间的一台服务器,当你通过代理服务器上网浏览时,浏览器不是直接到Web服务器去取回网页,而是向代理服务器发出请求,由代理服务器来取回浏览器所需要的信息,并传送给你的浏览器。于是,我们可以通过IP代理绕过这个检测机制4.2多进程 多进程爬虫即同时启用多个爬虫ID一共八位,且存在大量的无效ID,理论上爬出全部问题要爬一亿次,而平均单次爬取要0.3秒。所以需要用到大量的高匿IP代理和多进程使多进程需要考虑数据存储的问题,本项目还未实现5实验演示运行zhihu.py,程序将从questions.csv中读取最后一条记录的id,并持续+1迭代查询Ip.txt中存放可以使用的代理ipQuestions.csv存放爬取的数据Zhihu.py是主要的执行代码程序运行后,逐一id遍历,没有内容的id显示running,爬取到内容则打印标题和浏览量importimportrequests

frombs4importBeautifulSoup

importcsv

defmain(id):

url='/question/'+str(id)

req(url,id)

defreq(url,id):

headers={

'accept-language':'zh-CN,zh;q=0.9',

'origin':'',

'referer':'/question/290268306',

'user-agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/69.0.3497.100Safari/537.36'

}

#globalposition

#fo=open("ip.txt","r")

#fo.seek(position,0)

#proxy=fo.readline()

#

#proxies={

#"http":"http://%(proxy)s/"%{'proxy':proxy},

#"https":"http://%(proxy)s/"%{'proxy':proxy}

#}

#r=requests.get(url,headers=headers,proxies=proxies,timeout=3)

6代码展示r=r=requests.get(url,headers=headers,timeout=3)

#except(requests.exceptions.ProxyError,requests.exceptions.ConnectTimeout):

#position=fo.tell()

#print(position)

#return

soup=BeautifulSoup(r.text,'lxml')

#print(soup.text)

withopen('questions.csv',mode='a+',newline='')ascsv_file:

fieldnames=['id','title','views']

writer=csv.DictWriter(csv_file,fieldnames=fieldnames)

writer.writerow({'id':id,'title':"无",'views':"0"})

if(soup.title.string!="404-知乎"):

num=soup.select(".NumberBoard-itemValue")

print("found---",soup.title.string)

withopen('questions.csv',mode='a+',newline='')ascsv_file:

fieldnames=['id','title','views']

writer=csv.DictWriter(csv_file,fieldnames=fieldnames)

writer.writerow({'id':id,'title':soup.title.string,'views':num[1].text.strip()})

if__name__=='__main__':

withopen('questions.csv',mode='r+')ascsv_file:

reader=csv.reader(csv_file)

forlineinreader:

start=line[0]

print(start)

start=int(start)+1

a=0

#position=0

foriinrang

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论