第一版抓取的链接不是很到位,第二版使用BeautifulSoup来解析sitemap.xml提交,抓取更全。
学习是一件很开心的事情。
chabug一直不被百度收录,谷歌收录飙到599的时候,百度仍然在30左右徘徊。无可奈何,写了一个主动提交的脚本,来简化这一操作。
适用范围
sitemap.xml类似于https://chabug.org/sitemap.xml 我这种的,sitemap分类化可以直接食用。
WordPress装上插件XML Sitemap & Google News可直接食用。
注意
先修改脚本里的API哦!
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # author:Y4er import json import requests from bs4 import BeautifulSoup headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36', 'Content-Type': 'text/plain' } def sitemap(url): print('[*] 正在爬取sitemap') url = url + '/sitemap.xml' r = requests.get(url,headers=headers).text soup = BeautifulSoup(r,'html.parser') locs = soup.findAll('loc') urls = [] for loc in locs: print(loc.text) req = requests.get(loc.text,headers=headers).text url = BeautifulSoup(req,'html.parser').findAll('loc') for i in url: urls.append(i.text) imgs = BeautifulSoup(req,'html.parser').findAll('image:loc') for i in imgs: urls.append(i.text) # for url in urls: # url = url.replace('\n') print('[*] 发现%s个链接' % len(list(set(urls)))) return list(set(urls)) def submit(urls): try: print('[*] 正在提交') api = '填写你自己的API' data = '\n' data = data.join(urls) req = requests.post(api,headers=headers,data=data) print('[+] 提交成功%s条' % json.loads(req.text)['success']) print('[+] 今天剩余%s条' % json.loads(req.text)['remain']) except: print('[-] 提交失败') if __name__ == '__main__': urls = sitemap('') submit(urls)
原创文章,作者:Y4er,未经授权禁止转载!如若转载,请联系作者:Y4er