当前位置:淡墨SEO首页 > SEO软件 > 多线程制作sitemap地图,集合到工具集

多线程制作sitemap地图,集合到工具集

淡墨SEO3年前 (2022-09-01)SEO软件3945423

这次在我的工具集中,增加一个新功能,就是sitemap地图的制作,核心思路当然是爬取网站所有页面,并对页面进行数据清洗,包括去重、分类、url类别判断。然后再将功能集合到seo工具集中。


在代码部分,简单介绍一下,解析页面,然后通过BeautifulSoup对页面url进行提取,对url进行判断,同域名下的url都是目标url,再把目标url放入集合中。

def get_new_urls(base_url,html):
   soup = BeautifulSoup(html, 'html.parser', from_encoding='utf-8')
   links = soup.find_all('a', href=re.compile(r".*"))
   all_url = []
   for link in links:
       new_url = link['href']
       new_url_full = urljoin(base_url,new_url)
       if new_url_full.find(base_url) < 0:continue
       if not guolve(base_url,new_url_full):continue
       all_url.append(new_url_full)
   all_url.insert(0,base_url)
   return all_url
def parse_html(url):
   if url is None:
       return
   url = quote(url, safe="?#/:=@")
   try:
       res = requests.get(url=url,timeout=5)
       if res.status_code == requests.codes.ok:
           res.encoding = res.apparent_encoding
           return res.text
   except:
       return

将返回的列表数据,带入到线程中,再进行循环请求,获取下一批url。并对下一批url进行判断和去重


最后,把返回的url几个用xml的格式,进行写入xml文件的格式就可以了。

fw = open(filename, 'w', encoding="utf-8")
           fw.write('<?xml version="1.0" encoding="UTF-8"?>')
           fw.write(
               '\n<urlset xmlns="http://video.sitemaps.org/schemas/sitemap/0.9">'
          )
           root_url = urlparse(data[0]).netloc
           if not re.compile(r"http://").findall(root_url) and not re.compile(r"https://").findall(root_url):
               root_url = "http://" + root_url
           data = list(set(data))
           for url in data:
               # url = data['url']
               fw.write('\n\t<url>')
               fw.write('\n\t\t<loc>' + url + '</loc>')
               fw.write("\n\t\t<lastmod>" +time.strftime('%Y-%m-%d', time.localtime(time.time())) +
                   "</lastmod>")
               fw.write('\n\t\t<changefreq>daily</changefreq>')
               if re.findall(root_url + "$", url) or re.findall(
                       root_url + "/$", url):
                   fw.write('\n\t\t<priority>1.0</priority>')
               elif re.findall(root_url + "[^/]*/$",
                               url) or re.findall(
                                   root_url + "/[^/]*/$", url):
                   fw.write('\n\t\t<priority>0.8</priority>')
               elif re.findall(root_url + "[^/]*/[^/]*$",
                               url) or re.findall(
                                   root_url + "/[^/]*/[^/]*$", url):
                   fw.write('\n\t\t<priority>0.6</priority>')
               else:
                   fw.write('\n\t\t<priority>0.4</priority>')
               fw.write('\n\t</url>')
           fw.write('\n</urlset>')

在工具集中,我将sitemap功能也添加进去了,这样,在工具集中,可以很方便去使用。在挖掘页面的时候,可以选择挖掘的数量,如果不指定挖掘数量,就代表挖掘网站所有的页面url。并且这些url都是不重复的。



在导出数据时候,就可以将这些页面导出位XXX.XML格式的文件了。



有需要这款工具集合,可以私信我。


扫描二维码推送手机访问

文章内容均为原创,禁止转载!

本文链接:http://www.danmoseo.com/news/10.html

标签: seo工具

相关文章

搜狗站长平台推送,站点和非站点都可提交

搜狗站长平台推送,站点和非站点都可提交

日常做网站seo的时候,离不开对url的推送,这也是对应站长平台提供的链接提交服务,本次就搜狗站长平台批量提交,做一个推送讲解和示例。封装软件发货传送门》》搜狗站长平台推送视频演示:如下图就是网页推送的界面,如果每次都要手动去输入提交,想必效率和耐心都跟不上,而且想要做到批量提交,肯定要借助一个开发...

摆渡模拟点击关键词排名优化介绍

摆渡模拟点击关键词排名优化介绍

模拟点击的原理在于模拟用户打开浏览器,搜索关键词,后面进行一系列的模拟行为操作。在python代码中,用到的浏览器框架是selenium库,然后进行模拟点击整个过程的代码执行。源码商城》》》摆渡快排软件含源码教程视频演示:本次代码已经进行封包了,在运行的时候,只需要一键运行即可在安装方面导入数据库就...

百度站长二级域名批量诊断推送

百度站长二级域名批量诊断推送

二级域名批量诊断推送的意思就是百度站长平台抓取诊断功能,这个功能提交后,可以实时的来蜘蛛访问。但是如果手动去诊断的话,也非常麻烦,而且每次都要验证一下旋转。先来看看正常抓取诊断,每个域名每周可抓取70次。视频演示在代码中首先要获取指定站点的id值设置规则,随机字母推送网站链接过旋转验证整体的核心思想...

百度二级域名批量ck绑定软件-多线程(更新日期:2024-6-4)

百度二级域名批量ck绑定软件-多线程(更新日期:2024-6-4)

对于百度批量二级域名绑定软件,在最近几个有需要的朋友最关心的问题就是,速度如何?是否多线程?代理ip还是拨号?cookies在哪买?之类的问题,这类问题在文章中都进行了说明。二级域名绑定软件购买自动发货地址:http://faka.seoyiwu.com/product/2.html演示视频首先我们...

利用pyppeteer模拟浏览器自动化二级域名绑定任务

利用pyppeteer模拟浏览器自动化二级域名绑定任务

最近百度一直在更新,取消dns、post请求403,更改滑块验证码等措施,导致现在发包绑二级频频被限制。既然这样,直接索性搞一个自动化浏览器的模式来绑定二级。此次用到的是pyppeteer浏览器框架。此框架异步处理 速度还是挺快的。而且不需要下载浏览器驱动,非常方便哈。视频演示:首先是百度二级域名绑...