自己网站因数据比较多,趁晚上没事就写了一个通过python爬取url自动提交给百度,实现网站全站提交的思路,代码实现很简单,因为编写时间仓储,难免有些bug,可以放在服务器上配置下定时爬取提交。
import os import re import shutil REJECT_FILETYPE = ‘rar,7z,css,js,jpg,jpeg,gif,bmp,png,swf,exe‘ #定义爬虫过程中不下载的文件类型 def getinfo(webaddress): #‘#通过用户输入的网址连接上网络协议,得到URL我这里是我自己的域名 global REJECT_FILETYPE url = ‘http://‘+webaddress+‘/‘ #网址的url地址 print ‘Getting>>>>> ‘+url websitefilepath = os.path.abspath(‘.‘)+‘/‘+webaddress #通过函数os.path.abspath得到当前程序所在的绝对路径,然后搭配用户所输入的网址得到用于存储下载网页的文件夹 if os.path.exists(websitefilepath): #如果此文件夹已经存在就将其删除,原因是如果它存在,那么爬虫将不成功 shutil.rmtree(websitefilepath) #shutil.rmtree函数用于删除文件夹(其中含有文件) outputfilepath = os.path.abspath(‘.‘)+‘/‘+‘output.txt‘ #在当前文件夹下创建一个过渡性质的文件output.txt fobj = open(outputfilepath,‘w+‘) command = ‘wget -r -m -nv --reject=‘+REJECT_FILETYPE+‘ -o ‘+outputfilepath+‘ ‘+url #利用wget命令爬取网站 tmp0 = os.popen(command).readlines() #函数os.popen执行命令并且将运行结果存储在变量tmp0中 print >> fobj,tmp0 #写入output.txt中 allinfo = fobj.read() target_url = re.compile(r‘\".*?\"‘,re.DOTALL).findall(allinfo) #通过正则表达式筛选出得到的网址 print target_url target_num = len(target_url) fobj1 = open(‘result.txt‘,‘w‘) #在本目录下创建一个result.txt文件,里面存储最终得到的内容 for i in range(target_num): if len(target_url[i][1:-1])<70: # 这个target_url 是一个字典形式的,如果url 长度大于70 就不会记录到里面 print >> fobj1,target_url[i][1:-1] #写入到文件中 else: print "NO" fobj.close() fobj1.close() if os.path.exists(outputfilepath): #将过渡文件output.txt删除 os.remove(outputfilepath) #删除 if __name__=="__main__": webaddress = raw_input("Input the Website Address(without \"http:\")>") getinfo(webaddress) print "Well Done."
然后进入百度主动提交栏目,找到api接口,提交下数据即可
原文地址:https://www.cnblogs.com/68xi/p/9348357.html
时间: 2024-10-13 15:11:16