第一版抓取的链接不是很到位,第二版使用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


微信扫一扫
支付宝扫一扫 