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

    最近在使用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所对应的内容写入到各自文件中。
以上就是我现在做的一些工作,对于数据的搜集。





    

    

  

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值