技巧:08. SEO – 第二步.3.使用爬虫工具诊断

优采云 发布时间: 2022-11-18 22:23

  技巧:08. SEO – 第二步.3.使用爬虫工具诊断

  在前面的文章中介绍了使用诸如GSC/BWT、PSI、Lighthouse等网站内容最基本的部分SEO,技术SEO部分的现状,需要使用爬虫工具来了解当前的内容状态,内容结构了解更多,本文介绍了使用ScreamingFrog进行抓取, 理解这个想法。

  这是“SEO – 步骤 2.”子章节:

  ScreamingFrog可以覆盖内容和技术SEO的大部分方面,其详细的分类,过滤,汇总数据,快速查看内容,图像状态非常易于使用,并且具有一定的内容结构,交叉链接可视化功能。

  与 Web 分析工具不同,ScrearmingFrog 生成的可视化图形具有 UI 友好的优势,例如可以同时标记每个页面(节点)的 http 状态,但需要注意⚠️的是,这种关系是基于最短路径或目录的,因此可能无法进行深入的交联(内容结构)分析。因此,下一篇文章将简要使用网络分析软件结合Web跟踪工具来诊断和分析页面和页面关系。

  打开尖叫青蛙后:

  

  在下图中,右边的图形可以在尖叫青蛙的右下角找到,根据左侧选择的选项卡会显示不同的结果(圆环图或柱形图),点击左边的每个色块查看结果。

  以下是需要检查和导出的项目列表:

  完成

  

  上述检查、导出、记录后,SEO项目的第二步:技术、内容诊断、全站状态理解和高优先级行动清单应该基本完成,就可以开始项目了。

  下一篇文章将介绍:使用网络分析软件,结合爬虫结果、网站分析工具中的数据和GSC导出的数据,了解整个网站的内容结构和交叉链接,并检查关键目录和页面。 ——这一步将帮助SEO项目洞察网站中需要关注内容SEO的目录和页面, 并可视化结果。

  至于DeepCrawl,它可以很好地处理非动态渲染的网站,其简单的计划功能可以节省本地资源。因此,对于具有以下需求的SEO项目来说,DeepCrawl也是一个很好的工具:

  提醒一下,它的学分也是需要考虑的成本。

  下一篇: 使用网络分析软件分析内容结构

  自动采集器怎么用 理论知识:python爬虫实践教学

  编剧: 摩查兹

  一、前言

  这个文章以前是新人用的,大家都觉得很好理解,就分享了和大家一起学习。如果你已经学习了一些 Python 并且想用它做一些事情并且没有方向,请尝试以下示例。

  2. 环境准备

  安装请求 lxml BeautifulSoup4 的三个库(以下代码已在 Python 3.5 环境中通过了测试)。

  pip install requests lxml beautifulsoup4

  3.

  爬虫的几个小案例 3.1 获取本地公网IP地址

  以在互联网上查询IP为借口,使用python的请求库自动获取IP地址。

  import requests

r = requests.get("http://2017.ip138.com/ic.asp") r.encoding = r.apparent_encoding        #使用requests的字符编码智能分析,避免中文乱码 print(r.text) # 你还可以使用正则匹配re模块提取出IP import re print(re.findall("\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}",r.text))

  3.2 使用百度搜索界面编写URL采集器

  在这种情况下,我们将使用请求与 BeautifulSoup 库结合使用来完成任务。我们需要在程序中设置 User-Agent 标头,以绕过百度搜索引擎的反爬虫机制(你可以尽量不添加 User-Agent 标头,看看是否可以获取数据)。注意百度搜索结构的URL链接规律,比如第一页的URL链接参数pn=0,第二页的URL链接参数pn=10。等等。在这里,我们使用 CSS 选择器路径来提取数据。

  import requests

<p>

from bs4 import BeautifulSoup # 设置User-Agent头,绕过百度搜索引擎的反爬虫机制 headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0'} # 注意观察百度搜索结构的URL链接规律,例如第一页pn=0,第二页pn=10.... 依次类推,下面的for循环搜索前10页结果 for i in range(0,100,10):         bd_search = "https://www.baidu.com/s?wd=inurl:/dede/login.php?&pn=%s" % str(i)         r = requests.get(bd_search,headers=headers)         soup = BeautifulSoup(r.text,"lxml")     # 下面的select使用了css选择器路径提取数据         url_list = soup.select(".t > a")         for url in url_list:                 real_url = url["href"]                 r = requests.get(real_url)                 print(r.url)</p>

  编写完程序后,我们使用 关键词inurl:/dede/login.php 批量提取织梦cms的背景地址,效果如下:

  3.3 自动下载搜狗壁纸

  在这个例子中,我们会通过爬虫自动下载搜索到的壁纸,并将程序中存储的图像路径更改为要存储图像的目录路径。还有一点就是我们在程序中使用了 JSON 库,因为在观察中,我们发现搜狗壁纸的地址是以 JSON 格式存储的,所以我们用 JSON 来解析这组数据。

  import requests

import json #下载图片 url = "http://pic.sogou.com/pics/channel/getAllRecomPicByTag.jsp?category=%E5%A3%81%E7%BA%B8&tag=%E6%B8%B8%E6%88%8F&start=0&len=15&width=1366&height=768" r = requests.get(url) data = json.loads(r.text) for i in data["all_items"]:     img_url = i["pic_url"]     # 下面这行里面的路径改成你自己想要存放图片的目录路径即可     with open("/home/evilk0/Desktop/img/%s" % img_url[-10:]+".jpg","wb") as f:         r2 = requests.get(img_url)         f.write(r2.content)     print("下载完毕:",img_url)

  3.4 自动填写问卷

  目标官方网站:

  目标问卷:

  import requests

import random url = "https://www.wjx.cn/joinnew/processjq.ashx?submittype=1&curID=21581199&t=1521463484600&starttime=2018%2F3%2F19%2020%3A44%3A30&rn=990598061.78751211" data = {     "submitdata" : "1$%s}2$%s}3$%s}4$%s}5$%s}6$%s}7$%s}8$%s}9$%s}10$%s" } header = {     "User-Agent" : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko)",     "Cookie": ".ASPXANONYMOUS=iBuvxgz20wEkAAAAZGY4MDE1MjctNWU4Ni00MDUwLTgwYjQtMjFhMmZhMDE2MTA3h_bb3gNw4XRPsyh-qPh4XW1mfJ41; spiderregkey=baidu.com%c2%a7%e7%9b%b4%e8%be%be%c2%a71; UM_distinctid=1623e28d4df22d-08d0140291e4d5-102c1709-100200-1623e28d4e1141; _umdata=535523100CBE37C329C8A3EEEEE289B573446F594297CC3BB3C355F09187F5ADC*敏*感*词*92EBB07A9CC65CD43AD3E795C914CD57017EE3799E92F0E2762C963EF0912; WjxUser=UserName=17750277425&Type=1; LastCheckUpdateDate=1; LastCheckDesign=1; DeleteQCookie=1; _cnzz_CV4478442=%E7%94%A8%E6%88%B7%E7%89%88%E6%9C%AC%7C%E5%85%8D%E8%B4%B9%E7%89%88%7C1521461468568; jac21581199=78751211; CNZZDATA4478442=cnzz_eid%3D878068609-1521456533-https%253A%252F%252Fwww.baidu.com%252F%26ntime%3D1521461319; Hm_lvt_21be24c80829bd7a683b2c536fcf520b=1521461287,1521463471; Hm_lpvt_21be24c80829bd7a683b2c536fcf520b=1521463471", } for i in range(0,500):     choice = (         random.randint(1, 2),         random.randint(1, 4),         random.randint(1, 3),         random.randint(1, 4),         random.randint(1, 3),         random.randint(1, 3),         random.randint(1, 3),         random.randint(1, 3),         random.randint(1, 3),         random.randint(1, 3),     )     data["submitdata"] = data["submitdata"] % choice     r = requests.post(url = url,headers=header,data=data)     print(r.text)     data["submitdata"] = "1$%s}2$%s}3$%s}4$%s}5$%s}6$%s}7$%s}8$%s}9$%s}10$%s"

  当我们使用同一个IP提交多个问卷时,目标的反爬虫机制被触发,服务器会出现验证码。

  

  我们可以使用 X-Forwarded-For 来伪造我们的 IP,修改以下代码:

  import requests

import random url = "https://www.wjx.cn/joinnew/processjq.ashx?submittype=1&curID=21581199&t=1521463484600&starttime=2018%2F3%2F19%2020%3A44%3A30&rn=990598061.78751211" data = {     "submitdata" : "1$%s}2$%s}3$%s}4$%s}5$%s}6$%s}7$%s}8$%s}9$%s}10$%s" } header = {     "User-Agent" : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko)",     "Cookie": ".ASPXANONYMOUS=iBuvxgz20wEkAAAAZGY4MDE1MjctNWU4Ni00MDUwLTgwYjQtMjFhMmZhMDE2MTA3h_bb3gNw4XRPsyh-qPh4XW1mfJ41; spiderregkey=baidu.com%c2%a7%e7%9b%b4%e8%be%be%c2%a71; UM_distinctid=1623e28d4df22d-08d0140291e4d5-102c1709-100200-1623e28d4e1141; _umdata=535523100CBE37C329C8A3EEEEE289B573446F594297CC3BB3C355F09187F5ADC*敏*感*词*92EBB07A9CC65CD43AD3E795C914CD57017EE3799E92F0E2762C963EF0912; WjxUser=UserName=17750277425&Type=1; LastCheckUpdateDate=1; LastCheckDesign=1; DeleteQCookie=1; _cnzz_CV4478442=%E7%94%A8%E6%88%B7%E7%89%88%E6%9C%AC%7C%E5%85%8D%E8%B4%B9%E7%89%88%7C1521461468568; jac21581199=78751211; CNZZDATA4478442=cnzz_eid%3D878068609-1521456533-https%253A%252F%252Fwww.baidu.com%252F%26ntime%3D1521461319; Hm_lvt_21be24c80829bd7a683b2c536fcf520b=1521461287,1521463471; Hm_lpvt_21be24c80829bd7a683b2c536fcf520b=1521463471",     "X-Forwarded-For" : "%s" } for i in range(0,500):     choice = (         random.randint(1, 2),         random.randint(1, 4),         random.randint(1, 3),         random.randint(1, 4),         random.randint(1, 3),         random.randint(1, 3),         random.randint(1, 3),         random.randint(1, 3),         random.randint(1, 3),         random.randint(1, 3),     )     data["submitdata"] = data["submitdata"] % choice     header["X-Forwarded-For"] = (str(random.randint(1,255))+".")+(str(random.randint(1,255))+".")+(str(random.randint(1,255))+".")+str(random.randint(1,255))     r = requests.post(url = url,headers=header,data=data)     print(header["X-Forwarded-For"],r.text)     data["submitdata"] = "1$%s}2$%s}3$%s}4$%s}5$%s}6$%s}7$%s}8$%s}9$%s}10$%s"     header["X-Forwarded-For"] = "%s"

  渲染:

  关于这个文章,因为我之前写过,我就不重复了,但是有兴趣直接阅读:【如何通过Python自动填写问卷】。

  3.5 获取公网代理的IP地址,判断是否可以使用和延迟时间

  在此示例中,我们希望爬网 [West Spur 代理] 上的代理 IP,并验证这些代理的生存能力和延迟。(您可以将爬网的代理 IP 添加到代理链中,然后执行通常的渗透任务。在这里,我直接调用了Linux系统命令ping -c 1“ + ip.string + ” |awk 'NR==2{print}' -,如果你想在Windows中运行这个程序,你需要将os.popen倒数第二行的命令更改为Windows可以执行的命令。

  from bs4 import BeautifulSoup import requests import os url = "http://www.xicidaili.com/nn/1" headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36'} r = requests.get(url=url,headers=headers) soup = BeautifulSoup(r.text,"lxml") server_address = soup.select(".odd > td:nth-of-type(4)") ip_list = soup.select(".odd > td:nth-of-type(2)") ports = soup.select(".odd > td:nth-of-type(3)") for server,ip in zip(server_address,ip_list):     if len(server.contents) != 1:         print(server.a.string.ljust(8),ip.string.ljust(20), end='')     else:         print("未知".ljust(8), ip.string.ljust(20), end='')     delay_time = os.popen("ping -c 1 " + ip.string + " | awk 'NR==2{print}' -")     delay_time = delay_time.read().split("time=")[-1].strip("\r\n")     print("time = " + delay_time)

  四、结语

  当然,你也可以用Python做很多有趣的事情。如果你不明白上面的例子,那么我最后发一组python爬虫视频教程:【Python Web Crawler and Information Extraction】。现在网上真的有很多学习,希望大家能好好利用一下。

  如有疑问,可以留言,欢迎大家在春秋论坛上耍花招>>>点击跳转

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线