Python PhishTank爬取(钓鱼网站的使用)

    xiaoxiao2022-06-23  79

        最近在使用Python做网络爬虫,涉及到钓鱼网站的一些问题,或者说是使用Python爬取网站遇到的一些问题,Python语言中有很多强大的工具包,非常强大,在这里因为要爬取网页的内容,所以我选择的工具包为BeautifulSoup,一款强大的网页解析包。

       1 爬取网页内容   

    page = urllib2.urlopen(url) contents = page.read() print(contents)      url 就是你爬取得网页地址:比如www.baidu.com

          contents就是你爬取得网页的内容也就是网页源代码,以上三行代码就可以完成一个网页的爬取,很简单,通常来说很多网页都可以用这种方法来爬取,但是有时因为遇到网页屏蔽,这个就不行了。最近我在爬取PhishTank这个网址时,就遇到了这个问题,如下图:

    解决方法通常有很多种:1 添加http请求头的内容 ;2 使用相关网站的API

    在此我使用的是网站的API,以PhishTank网站做例子,在看了网站上的相关文档后,注册获得App key,根据开发文档,获得想要的内容------网站上所有的钓鱼网站的url

    1 根据PhishTank网站的开发文档 url 应该写 

    http://data.phishtank.com/data/8bf7ccdbfb3eb4ad75996fe1d616efc4406f321cba361844b88402f3ee01c8cd/online-valid.csv

    2  为了方便管理,我们把这些得到的url写入文件

    page = urllib2.urlopen(url) contents = page.read() print(contents) f = file("Content.txt" ,"w+" ) f.write(contents)以上两步后,就能把PhishTank网站上的所有钓鱼网站的URL写入到文件中了。

    3 获得这些URL所对应的网页内容

    需要注意两点 3.1 有些URL对应的网页内容已经没有了,也就是404,3.2还有一些URL对应的网页内容是不安全的,3.3会遇到请求超时的问题,我们用异常捕获来排除所有的问题,代码如下:

    def getContent(): #获得url所对应的内容,并进行异常的捕获 i = 0 url = open("TestUrl.txt") next(url) for urlcontent in url: try : #在获取远程网页内容时会遇到的卡死现象,也就是说如果请求的页面很久没有做出相应,那么 #Python就会一直处于等待过程,会一直停在page.read()这条语句上,所以要设置超时处理 page = urllib2.urlopen(urlcontent,timeout=5) i += 1 contents = page.read() f = file("TestContent"+str(i)+".txt" , "w+") f.write(contents) print(i) except Exception,ex: print("404 or time out") 以上代码我们会把url所对应的内容写入到各自文件中。 以上就是我现在做的一些工作,对于数据的搜集。

        

        

      

    转载请注明原文地址: https://ju.6miu.com/read-1123212.html

    最新回复(0)