黑帽联盟

 找回密码
 会员注册
查看: 1647|回复: 1
打印 上一主题 下一主题

[经验] python模拟搜索引擎蜘蛛

[复制链接]

852

主题

38

听众

3181

积分

管理员

Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    郁闷
    2024-5-10 17:49
  • 签到天数: 1543 天

    [LV.Master]伴坛终老

    搜索引擎收集网页其实就是用程序来下载网页的源代码,下载代码本身并不复杂(搜索引擎工作的难点在于高查全率、高查准率和较短的响应时间),用Python的话,几行代码就可以完成,代码如下:
    import urllib
    html=urllib.urlopen("下载代码的URL").read(),html就是返回的网页源代码(在这里不考虑乱码的问题)。

    搜索引擎在抓取网页的时候一般都会亮明身份,在网站的日志中可以看到,我们也可以模拟一个搜索引擎的蜘蛛去获取网页的源代码,这需要 构建一个头部信息,User-Agent就是模拟的蜘蛛,以百度为例:
    headers={
        'Host':'这里写主机名,一般以URL代替',
        'User-Agent':'Mozilla/5.0+(compatible;+Baiduspider/2.0;++http://www.baidu.com/search/spider.html)',
        'Referer':'写URL即可'
    }

    这时获取源代码就不能使用urllib模块了,需要导入urllib2模块:import urllib2,然后用urllib2的Request方法获取网页源代码:
    req=urllib2.Request(url=目标URL,headers=headers)
    html=urllib2.urlopen(req).read()

    模拟搜索引擎蜘蛛跟SEO有什么关系呢?模拟蜘蛛获取到的源代码是SEOer最关心的,因为这样的网页才是搜索引擎收录、进行相关排序的,有时候一些站长会通过判断来路,为搜索引擎和用户返回不同的网页,SEO如果不仔细的话,交换友情链接会吃亏。在chinaz 的工具里有模拟搜索引擎蜘蛛的,对程序不熟的,可以利用它的工具。

    模拟搜索引擎蛛蛛另一个用在SEO方面是采集、挖掘网站数据用。网络上有大量的数据,搜索引擎是抓取不到的(如JS调用等),我们可以利用程序去抓取,但现在很多网站都采取了防采集措施,如频繁访问会被封IP等,但他们对搜索引擎是完全开放的,我们可以利用这一点,模拟蜘蛛去挖掘网站内容,我就用这种方法采集过国内某著名网站的内容。

    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    勿忘初心,方得始终!

    52

    主题

    2

    听众

    310

    积分

    黑帽学员

    Rank: 3Rank: 3

  • TA的每日心情
    奋斗
    2019-9-27 16:27
  • 签到天数: 258 天

    [LV.8]以坛为家I

    看看,了解了解
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部