① 如何用最简单的Python爬虫采集整个网站
在之前的文章中Python实现“维基网络六度分隔理论“之基础爬虫,我们实现了在一个网站上随机地从一个链接到另一个链接,但是,如果我们需要系统地把整个网站按目录分类,或者要搜索网站上的每一个页面,我们该怎么办?我们需要采集整个网站,但是那是一种非常耗费内存资源的过程,尤其是处理大型网站时,比较合适的工具就是用一个数据库来存储采集的资源,之前也说过。下面来说一下怎么做。
网站地图sitemap
网站地图,又称站点地图,它就是一个页面,上面放置了网站上需要搜索引擎抓取的所有页面的链接(注:不是所有页面,一般来说是所有文章链接。大多数人在网站上找不到自己所需要的信息时,可能会将网站地图作为一种补救措施。搜索引擎蜘蛛非常喜欢网站地图。
对于SEO,网站地图的好处:
1.为搜索引擎蜘蛛提供可以浏览整个网站的链接简单的体现出网站的整体框架出来给搜索引擎看;
2.为搜索引擎蜘蛛提供一些链接,指向动态页面或者采用其他方法比较难以到达的页面;
3.作为一种潜在的着陆页面,可以为搜索流量进行优化;
4.如果访问者试图访问网站所在域内并不存在的URL,那么这个访问者就会被转到“无法找到文件”的错误页面,而网站地图可以作为该页面的“准”内容。
数据采集
采集网站数据并不难,但是需要爬虫有足够的深度。我们创建一个爬虫,递归地遍历每个网站,只收集那些网站页面上的数据。一般的比较费时间的网站采集方法从顶级页面开始(一般是网站主页),然后搜索页面上的所有链接,形成列表,再去采集到的这些链接页面,继续采集每个页面的链接形成新的列表,重复执行。
很明显,这是一个复杂度增长很快的过程。加入每个页面有10个链接,网站上有5个页面深度,如果采集整个网站,一共得采集的网页数量是105,即100000个页面。
因为网站的内链有很多都是重复的,所以为了避免重复采集,必须链接去重,在Python中,去重最常用的方法就是使用自带的set集合方法。只有“新”链接才会被采集。看一下代码实例:
from urllib.request import urlopenfrom bs4 import BeautifulSoupimport repages = set()def getLinks(pageurl):globalpageshtml= urlopen("" + pageurl)soup= BeautifulSoup(html)forlink in soup.findAll("a", href=re.compile("^(/wiki/)")):if'href' in link.attrs:iflink.attrs['href'] not in pages:#这是新页面newPage= link.attrs['href']print(newPage)pages.add(newPage)getLinks(newPage)getLinks("")
原理说明:程序执行时,用函数处理一个空URL,其实就是维基网络的主页,然后遍历首页上每个链接,并检查是否已经在全局变量集合pages里面,如果不在,就打印并添加到pages集合,然后递归处理这个链接。
递归警告:Python默认的递归限制是1000次,因为维基网络的链接浩如烟海,所以这个程序达到递归限制后就会停止。如果你不想让它停止,你可以设置一个递归计数器或者其他方法。
采集整个网站数据
为了有效使用爬虫,在用爬虫的时候我们需要在页面上做一些事情。我们来创建一个爬虫来收集页面标题、正文的第一个段落,以及编辑页面的链接(如果有的话)这些信息。
第一步,我们需要先观察网站上的页面,然后制定采集模式,通过F12(一般情况下)审查元素,即可看到页面组成。
观察维基网络页面,包括词条和非词条页面,比如隐私策略之类的页面,可以得出下面的规则:
所有的标题都是在h1→span标签里,而且页面上只有一个h1标签。
所有的正文文字都在div#bodyContent标签里,如果我们想获取第一段文字,可以用div#mw-content-text→p,除了文件页面,这个规则对所有页面都适用。
编辑链接只出现在词条页面上,如果有编辑链接,都位于li#ca-edit标签的li#ca-edit→span→a里面。
调整一下之前的代码,我们可以建立一个爬虫和数据采集的组合程序,代码如下:
import redef getLinks(pageUrl):global pageshtml = urlopen("" + pageUrl)soup = BeautifulSoup(html)try:print(soup.h1.get_text())print(soup.find(id="mw-content-text").findAll("p")[0])print(soup.find(id="ca-edit").find("span").find("a").attrs['href'])except AttributeError:print("页面缺少属性")for link in soup.findAll("a", href =re.compile("^(/wiki/)")):if 'href' in link.attrs:#这是新页面newPage = link.attrs['href']print("------------------\n"+newPage)
这个for循环和原来的采集程序基本上是一样的,因为不能确定每一页上都有所有类型的数据,所以每个打印语句都是按照数据在页面上出现的可能性从高到低排列的。
数据存储到MySQL
前面已经获取了数据,直接打印出来,查看比较麻烦,所以我们就直接存到MySQL里面吧,这里只存链接没有意义,所以我们就存储页面的标题和内容。前面我有两篇文章已经介绍过如何存储数据到MySQL,数据表是pages,这里直接给出代码:
import reimport datetimeimport randomimport pymysqlconn = pymysql.connect(host = '127.0.0.1',port = 3306, user = 'root', passwd = '19930319', db = 'wiki', charset ='utf8mb4')cur = conn.cursor()cur.execute("USE wiki")#随机数种子random.seed(datetime.datetime.now())#数据存储def store(title, content):cur.execute("INSERT INTO pages(title, content)VALUES(\"%s\", \"%s\")", (title, content))cur.connection.commit()def getLinks(articleUrl):html = urlopen("" + articleUrl)title = soup.find("h1").get_text()content =soup.find("div",{"id":"mw-content-text"}).find("p").get_text()store(title, content)returnsoup.find("div",{"id":"bodyContent"}).findAll("a",href=re.compile("^(/wiki/)((?!:).)*$"))#设置第一页links =getLinks("/wiki/Kevin_Bacon")try:while len(links)>0:newArticle = links[random.randint(0, len(links)-1)].attrs['href']print (newArticle)links = getLinks(newArticle)finally:cur.close()conn.close()
小结
今天主要讲一下Python中遍历采集一个网站的链接,方便下面的学习。
希望通过上面的操作能帮助大家。如果你有什么好的意见,建议,或者有不同的看法,我都希望你留言和我们进行交流、讨论。
② 网站如何设置采集
搜索引擎通过一种程序robot(又称spider),自动访问互联网上的网页并获取网页信 息。您可以在您的网站中创建一个纯文本文件robots.txt,在这个文件中声明该网站中不想被robot 访问的部分,这样,该网站的部分或全部内容就可以不被搜索引擎收录了,或者指定搜 索引擎只收录指定的内容。 robots.txt文件位置 robots.txt文件应该放在网站根目录下。举例来说,当robots访问一个网站时,首先会检查该网站中是否存在robots.txt 这个文件,如果机器人找到这个文件,它就会根据这个文件的内容,来确定它访问权限的范 围。 robots.txt文件的格式 “robots.txt”文件包含一条或更多的记录,这些记录通过空行分开(以CR,CR/NL,or NL作为结束符),每一条记录的格式如下所示: “<field>:<optionalspace><value><optionalspace>” 在该文件中可以使用#进行注解,具体使用方法和UNIX中的惯例一样。该文件中的记录 通常以一行或多行User-agent开始,后面加上若干Disallow行,详细情况如下: User-agent: 该项的值用于描述搜索引擎robot的名字,在“robots.txt”文件中,如果有多条 User-agent记录说明有多个robot会受到该协议的限制,对该文件来说,至少要有一条User- agent记录。如果该项的值设为*,则该协议对任何机器人均有效,在“robots.txt”文件 中,“User-agent:*”这样的记录只能有一条。 Disallow: 该项的值用于描述不希望被访问到的一个URL,这个URL可以是一条完整的路径,也可以 是部分的,任何以Disallow开头的URL均不会被robot访问到。例如: “Disallow: /help”对/help.html 和/help/index.html都不允许搜索引擎访问, 而“Disallow: /help/”则允许robot访问/help.html,而不能访问/help/index.html。 任何一条Disallow记录为空,说明该网站的所有部分都允许被访问,在 “/robots.txt”文件中,至少要有一条Disallow记录。如果“/robots.txt”是一个空文 件,则对于所有的搜索引擎robot,该网站都是开放的。 robots.txt文件存在的意义 有些人会问,既然robots文件没弄好,或出错了,会影响整个网站的收录,那为什么还要这个文件呢? 其实robots是为特定需要的站长准备的,因为有些网站,有一些页面是站长不想被SE收录的,所以才有了这个robots文件。 五、 robots.txt文件用法举例 例1、禁止所有搜索引擎访问网站的任何部分 User-agent: * Disallow: / 例2、允许所有的robot访问 User-agent: * Disallow: (或者也可以建一个空文件 "/robots.txt" file) 例3、禁止某个搜索引擎的访问 User-agent: BadBot Disallow: / 例4、允许某个搜索引擎的访问 User-agent: Baispider Disallow: User-agent: * Disallow: / 例5、一个简单例子 在这个例子中,该网站有三个目录对搜索引擎的访问做了限制,即搜索引擎不会访问这三个目录。 User-agent: * Disallow: /cgi-bin/ Disallow: /tmp/ Disallow: /joe/ 需要注意的是对每一个目录必须分开声明,而不要写成:“Disallow: /cgi-bin/ /tmp/”。 User-agent:后的* 具有特殊的含义,代表“any robot”,所以在该文件中不能有 “Disallow: /tmp/*” or “Disallow: *.gif”这样的记录出现。
③ 如何建立自己的网站
1 你说的有问题 应该是iis
2 如果你有空间 直接上传到空间就可以了 会有一个 二级域名 通过这个域名就可以访问了
3 是的自己的电脑做服务器 才需要
④ 怎么操作电脑开网站的
个人网站建设完全过程经验
互联网发现非常迅速,现在已经非常普及,很多朋友都建立个人网站的想法。现在说说我自己的建站经验,希望能给大家一点帮助。
首先得提醒大家,建立个人网站需要花费较多的时间,不管你的网站内容是从网上采集或者原创,大家要有心理准备。下面说说详细过程。
1、域名申请。
当你准备建站时,建议首先申请一个顶级域名,也就是域名要有“www”,如我的域名是http://www.6699fa.cn 。申请顶级域的网站可以到中国国家互联网信息中心上找,里面的网站都是正规的,域名的价钱各不相同,你可以多作比较,基本上是每年100元左右。而第一年一般都有优惠,如后缀是“.cn”的域名,有时第一年低至一元。
为什么建议申请顶级域名呢?因为当你的网站有一定的访问量以后,一般都会放置一些广告来增加一点收入,而要申请广告,一般都要求有顶级域名。
2、网站建设。
(1)确定好网站主题、内容。网站内容一般应该是自己熟悉的。自己不熟悉,网站内容很难丰富、充实。内容可以是自己原创,也可以从网上采集,但最好经过自己加工。当然,为了便于以后推广自己的网站、能够有效地提高网站的访问量,也可以到网站搜索一下,看看哪些内容比较流行、访问的人数比较多。
(2)网站制作。制作网站的工具一般是用fronpage和deamweaver。Fronpage比较简单,功能上相对少一些,而deamweaver虽然稍微难一点,但功能强大,制作出的网站更加精美。如果你不会使用这两个软件,可以一边学习一边建站,学会这两个软件,你的网站也就建设起来了。Dreamweaver建站过程的教程,我的网站有。因为网站一般都有标志,标志一般都包含有域名,如果我们申请了域名,现在就可以设计标志了。
3、网站备案。
网站建好后,你要发布到互联网上,必须先到国家信息产业部网站备案,备案后你的网站才合法。备案方法在我的网站上有“个人网站备案技巧”、 “个人服务器网站备案注意问题”。国家信息产业部网站的地址:点击我网站最下面的网站备案后就可以进入。当然,也可以一边建站一边申请备案,备案一般都要15天左右,但一定要确定好你网站的域名和网站名称,一旦备案成功,想修改就很麻烦了。
4、申请空间。
网站完全建设完整后,就可以发布到互联网上,有2种方法:
一是用个人电脑作为服务器。这就需要保证你的电脑上网正常,否则别人访问不了你的网站,那就没有访问量了。个人服务器不用支出网站空间费用,但电脑需要24小时开着,要一定的电费。个人服务器的设置方法参考我的网站上的
“IIS绑定域名详细教程”。
二是上传到空间。我们可以到空间服务商的网站申请收费空间或免费空间。收费空间相对稳定一点,质量好一点,当然也就需要不少的花费。免费空间相对要少一些,质量也稍微差一点,而且一般都有广告,但不用开支,可以在网站找到。
域名邦定空间或个人服务器相关经验参考我网站上的。
5、上传网站。
如果你使用的是空间,那么就必须把你的网站内容上传到空间,个人电脑就不用做这一步。把网站上传到空间一般都使用专门的软件,如“CuteFTP”,使用方法参考:“CuteFTP中文版教程”。
6、网站推广。
我们辛辛苦苦建设起来的网站,如果没有人访问,那不是白费心机了。所以我们必须进行网站推广,让更多的人知道我们的网站,提高网站的访问量。推广的方法网上很多,我的网站上也有。这一步也很重要,互联网上有成千上成的网站,别人很难访问到自己的网站,所以也必须花较大的力气推广出去。
7、在网站上放置广告。
建设一个个人网站,除了需要花费大量的时间外,还需要花去一定的费用,如上面说的域名费用、空间费用。当然,如果你使用的是网上免费的二级域名,这两项费用就不需要了。但我总觉得,即使你是凭着自己的兴趣建设起来的网站,反正网站已经建起来了,为何不能充分利用它来为自己增加一点收入呢。所以我还是建议你申请顶级域名,一开始我就说了,放置广告一般需要顶级域名。所以,当你的网站有了一定的访问量以后,即使你不在乎那一点点费用,还是可以考虑放置一点广告上去来增加一点收入,不放置广告就白白浪费了赚钱的机会。利用网站赚钱的方法网上多有介绍,我的网站也有。需要注意的是,广告代码一般都是html代码,所以放置广告需要懂一点html代码知识,不难的,只要做简单了解就可以了,这一点知识网上随便就可以找到。
8、最后就是维护你的网站了。为了能够不断提高网站的访问量,你必须经常更新网站,不断充实、丰富网站的内容。
⑤ 如何用自己的电脑做服务器搭建网站
下载appserv-win32-2.5.10;ZendOptimizer-3.3.3;点击前面的开始建立环境。
步骤有点复杂,你最好去找相关教程。
建立好环境以后,上传自己的建站程序。
这时,通常你访问http://127.0.0.1就可以开始建站了。
⑥ 如何在自己电脑搭建网站
你算是问对人了。
作为资深的老站长,我来系统的回答你问的三个问题。
1.域名可以用花生壳吗?如果不可以的那里可以申请个可以做的域名啊?
2.做网站是用什么空间的啊?用FTP吗?
3.是用FTP我应该如何搭建啊?
1答:域名必须用花生壳,因为家里宽带是动态IP,我们这样做是为了让域名别名解析到壳域名上。这样域名就能直接访问你本地的源码了。
2、不存在什么空间,用你本地硬盘,无需任何FTP。FTP是远程上传服务器的,所以用不到。
3、本地搭建环境就行了,ASP的直接用IIS就行,很简单。
核心技术:首先家里80端口大部分都是被F的,所以你还要用443端口,也就是网站HTTPS访问,已经成为趋势了。我经常远程给客户调试服务器,这些都是轻车熟路了。
⑦ 一,如何搭建属于自己的网站
步骤1:申请域名。
域名就是我们打开一个网页时上面的网址,域名是需要购买的,可以从某宝买,也可以从一些专业网站买,把自己想注册的域名先记录到本子上,因为也许很多都已经被注册过了,未注册的域名才能购买。由于域名的价格普遍很便宜,所以建议大家到万网上进行购买。
我随手输入了一个网址:hongxinghui,大家可以看到,域名的价格分别是4—88元/年不等,所以单从购买域名来说,其实只是一个很小的投入。
步骤2:购置服务器,就是放你网站的地方。
如果你想做的网站很简单或者说容量不是太大的话,我建议到阿里云购买一个低配的云ECS服务器,一年的价格差不多在770左右。
步骤3:选择建站程序
有自己的服务器了,程序就是起到一个装修的作用,就是看你想要打造一个什么样的程序,做博客有博客专门的程序,做企业站、论坛、分类信息等都有专门的程序,常用的建站程序有DZ(适合论坛)、织梦(适合展示)、WP(博客网站)、Z-bolg(博客网站)等,大家可以针对自己的需求,适当的选择建站程序。做程序了解程序:如果网站没有程序,以后上传资料、图片、更改信息比较麻烦。需要用制作工具才能修改。而有了程序后台,更改资料对于您来讲,只需要会打字就可以更新网站。
步骤4:把程序导入空间
这里需要用到一个软件:ftp。网络上能下载到,根据你购买的空间的信息,填写之后即可连到你的空间里,这样就能实现空间跟你电脑互通了,当然可以直接在空间面板根目录里上传这个建站程序的文件夹。
步骤5:服务器绑定域名
这两者必须绑定之后,你从浏览器输入网址才会连接到网站,不同地方购买的绑定方式大同小异。
步骤6:程序的安装
不同的程序安装方式是不同的,你可以网络一下你所用的程序的安装方法,安装完成之后,一个简陋的网站就算是完成了。
步骤7:安装网站模板
如果你想要你的网站看起来更直观,可以安装一些网站模板上去,如果免费的模板,你觉得不行,可以到某宝上购买,价格很便宜,一般也就几块或十几块钱,可以永久使用,包安装的话,可能需要多付十几二十块钱,有的店家为了得好评,也有免费帮安装的。
⑧ 如何用最简单的Python爬虫采集整个网站
采集网站数据并不难,但是需要爬虫有足够的深度。我们创建一个爬虫,递归地遍历每个网站,只收集那些网站页面上的数据。一般的比较费时间的网站采集方法从顶级页面开始(一般是网站主页),然后搜索页面上的所有链接,形成列表,再去采集到的这些链接页面,继续采集每个页面的链接形成新的列表,重复执行。
⑨ 如何在自己的电脑上搭建网站,具体怎么操作
如果是本地用户测试,你可以使用WINDOWS自带的WEB发布工具,比较傻瓜的方法是使用fontpage打开站点,然后用发布向导发布。如果是在共网或局域网发布,方法不同。可以再咨询吧。