Python批量查询网站收录
本文转自贾定强的博客,稳重链接都没去掉。http://www.jiadingqiang.com/python%E6%89%B9%E9%87%8F%E6%9F%A5%E8%AF%A2%E7%BD%91%E7%AB%99%E6%94%B6%E5%BD%95/
网站收录是网站seo优化的第一步,只有有了收录才有可能获得排名,进而获得流量。今天跟大家分享一个批量查询网站收录情况的python脚本。
import random import time from win32com.client import Dispatch urlFileName = "urlFile.txt" outputFileName = "result.txt" minWaitTime = 1 maxWaitTime = 15 outputFile = open(outputFileName, 'w') ie = Dispatch("InternetExplorer.Application") ie.visible = 1 baseUrl = 'http://www.google.com' ie.navigate('http://www.google.com') while (ie.ReadyState != 4): time.sleep(1) print '页面载入完结' with open(urlFileName) as urlFile: for url in urlFile: # 这个是页面是下一次请求等待的时间, # 你可以修改上面minWaitTime和maxWaitTime的值来设置等待时间. # 下面的time.sleep(1)不是请求之间的等待时间 waitTime = random.randint(minWaitTime, maxWaitTime) time.sleep(waitTime) url = url.strip() while(True): try: ie.Document.forms[0].elements["q"].value="site:" + url ie.Document.forms[0].submit() # 这个地方以前有错误是因为url里面有斜线,我测试的时候没有测试到 # 斜线要换成%2F,分号要换成%3A,如果还有其它的特殊字符也还要换。 checkUrl = url.replace('/', '%2F') checkUrl = checkUrl.replace(':', '%3A') checkUrl = checkUrl.replace('?', '%3F') checkUrl = checkUrl.replace('=', '%3D') while (ie.ReadyState != 4 or str(ie.LocationURL).find(checkUrl) == -1): # print str(ie.LocationURL) time.sleep(1) result = ie.Document.getElementById("ires").innerHTML if len(result)>0: print url, "recored" outputFile.write(url + ":recored\n") else: print url, "not recored" outputFile.write(url + ":not recored\n") break except: time.sleep(60) ie.navigate(baseUrl) outputFile.close()
使用方法:在配置完python的运行环境,并安装了win32com包之后,在与脚本同目录下放一个urlFile.txt文件,里面每行放一个你要查询的网址,然后运行程序就可以查询urlFile.txt文件里所有网址的收录情况了。
如果你想查询一个比较小型的网站的收录情况的话,你可以用sitemap生成工具生成网站的sitemap,或者直接使用网站根目录下的sitemap.xml,然后用excel或其他工具将sitemap中的网址提取出来,放在urlFile.txt文件中,就可以用这个简单的python脚本来查询网站的收录情况了。