归纳总结:采集站做SEO的一些要点 -管理资料

优采云 发布时间: 2022-10-14 19:10

  归纳总结:采集站做SEO的一些要点 -管理资料

  在QQ群里,大家交流了做采集站SEO的要点,现总结一下相关问题和讨论结果:

  采集 的内容会是 收录 吗?

  如果是有采集内容的站点,有可能没有收录

  什么会导致网站不是 收录?

  太多相同的内容;

  一篇就是上千条内容

  采集 的一些亮点?

  采集一次不要做太多,分批、分段做;

  

  不要采集一个站所有的内容:目的是不要有太多相同的东西,每个栏目最好使用不同的站,采集站做一些点的SEO。

  如何选择 采集 源?

  80%的时间找到采集的来源,20%的时间做采集;

  例如,如果要选择一个列,必须看好几个站,那么就需要确定这些站中哪个质量更好。或者如果不是很好,随便找一篇文章文章,在文章里复制一句,百度或者谷歌搜索。只要有这个文章 的网站,就会列出收录 的页面。这时候肯定有很多同名的页面,有的已经手动编辑调整过标题,选择后者作为采集的来源。如果你采集那些标题相同,数量最少的网站,你可以肯定和你相同标题的网站会更少,只有两三条信息,这很正常,搜索引擎目前不会太在意。

  采集 返回的内容怎么办?

  如果你有时间,适当的把文章段落倒过来,删除一些无关紧要或罗嗦的内容,适当增加一些不涉及的相关内容,是有好处的。做SEO的几点”()。或者至少修改总内容标题的10%。如果你没有时间整理这些标题,可以直接从文章中选择一个句子来使用。描述描述可以自己写,也可以用一段内容替换(不超过155个字符)

  然后,需要给页面添加一些干扰因素,比如可以在模板中写一些版权声明(组织自己的语言),2-30字就够了,这个位置的版权声明可以出现一些你想在首页推送关键词,比如关键词,可以链接到首页。这也是一个内部链接优化。

  如何控制内部链接的数量?

  

  采集 本身的内容权重不会太高,当然越少越好

  一篇文章文章建议放5个以内的内链,不要超过3个外链,否则权重基本没什么

  采集 与 原创 的比例是多少?

  还是需要适当地写一些原创的内容。有一种说法是采集和原创的内容比例要控制在20:1以下。

  比例越大,网站权重累积越差。

  最后说一下data采集的缺点:

  搜索引擎总是希望为用户提供更多更好质量的内容。简单地说,这个人就是爱新恨旧。如果某个网站被搜索引擎认为是一个没有原创内容的网站,那么这个网站基本上就相当于一个句子。进入沙盒很容易,但很难弄清楚。

  本文来自:

  解决方案:如何用最简单的Python爬虫采集整个网站

  在之前的文章 Python实现“维基百科六度分离理论”基础爬虫中,我们实现了一个网站随机从一个链接到另一个链接,但是如果我们需要系统对整个网站 分类,或者要搜索 网站 上的每一页,我们该怎么办?我们需要采集整个网站,但这是一个非常占用内存的过程,尤其是在处理大的网站时,更合适的工具是使用数据库来存储采集资源为,之前也说过。这是如何做到的。

  网站地图站点地图

  网站map,也叫sitemap,是一个页面,上面放置了网站上所有需要被搜索引擎抓取的页面(注意:不是所有页面,一般都是文章链接。大多数人在 网站 上找不到所需信息时,可能会求助于 网站 地图。搜索引擎蜘蛛喜欢 网站 地图。

  对于 SEO,网站maps 的好处:

  1. 为搜索引擎蜘蛛提供可以浏览整个网站的链接,简单反映网站的整体框架,供搜索引擎查看;

  2. 为搜索引擎蜘蛛提供指向动态页面或其他方式难以到达的页面的链接;

  3. 作为可针对搜索流量进行优化的潜在着陆页;

  4. 如果访问者试图访问 网站 域中不存在的 URL,访问者将被重定向到“找不到文件”错误页面,并且 网站map 可以作为该页面“内容”的“准”。

  数据采集

  采集网站数据不难,但是爬虫需要有足够的深度。我们创建了一个爬虫,它递归地遍历每个 网站 并且只采集那些 网站 页面上的数据。通常耗时的 网站采集 方法从顶层页面(通常是 网站 主页)开始,然后搜索页面上的所有链接,形成一个列表,然后去到采集到这些链接的页面,继续采集到每个页面的链接形成一个新列表,重复执行。

  

  显然,这是一个复杂性迅速增长的过程。每页添加 10 个链接,在 网站 上添加 5 个页面深度。如果采集 整个网站,则采集 页的总数为105,即100,000 页。

  因为网站的很多内部链接都是重复的,为了避免重复采集,需要链接和去重。在 Python 中,最常用的去重方法是使用内置的集合采集方法。只有“新”链接是 采集。看一下代码示例:

  from urllib.request import urlopenfrom bs4 import BeautifulSoup import repages = set()def getLinks(pageurl):globalpageshtml= urlopen("" + pageurl)soup= BeautifulSoup(html)forlink in soup.findAll("a", href=pile( " ^(/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 set ,然后递归处理链接。

  递归警告:Python 的默认递归限制是 1000 次,并且由于 Wikipedia 链接丰富,达到递归限制时程序停止。如果你不想让它停止,你可以设置一个递归计数器或其他东西。

  采集整个网站数据

  为了有效地使用爬虫,我们需要在使用爬虫的同时在页面上做一些事情。让我们创建一个爬虫来采集有关页面标题、正文第一段和编辑页面的链接(如果有的话)的信息。

  第一步,我们需要在网站上观察页面,然后制定采集模式,通过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 =pile("^(/wiki/)")):if 'href' in link.attrs:#This is a新页面 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 number seed random.seed(datetime.datetime.now())#data storage def store(title, content):cur.execute("INSERT INTO pages(title, content)VALUES(\"%s\", \"%s\")", (title, content))mit()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=pile("^(/wiki/)((?!:).

  概括

  今天主要讲Python中遍历采集一个网站链接,方便后面的学习。

  希望以上操作对您有所帮助。如果您有什么好的意见、建议或不同的看法,希望您留言与我们交流讨论。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线