本文最后更新于 2018年08月26日 16:36 可能会因为没有更新而失效。如已失效或需要修正,请留言!

第一版抓取的链接不是很到位,第二版使用BeautifulSoup来解析sitemap.xml提交,抓取更全。

学习是一件很开心的事情。

【重写】百度站长Python主动推送-ChaBug安全

 

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('http://www.chabug.org')
	submit(urls)

 

喜欢这篇文章的话就点一点喜欢吧!