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脚本来查询网站的收录情况了。
微信扫一扫 或 点击链接联系我
