python实现百度关键词排名查询
就是一个简单的python查询百度关键词排名的函数,以下是一些简介:
1、UA随机
2、操作简单方便,直接getRank(关键词,域名)就可以了
3、编码转化。编码方面应该没啥问题了。
4、结果丰富。不仅有排名,还有搜索结果的title,URL,快照时间,符合SEO需求
5、拿来做个软件或者自己用都很方便。
功能是单线程实现,速度慢,大家可以参考修改成自己需要的。
#coding=utf-8
import requests
import BeautifulSoup
import re
import random
def decodeAnyWord(w):
try:
w.decode('utf-8')
except:
w = w.decode('gb2312')
else:
w = w.decode('utf-8')
return w
def createURL(checkWord): #create baidu URL with search words
checkWord = checkWord.strip()
checkWord = checkWord.replace(' ', '+').replace('\n', '')
baiduURL = 'http://www.baidu.com/s?wd=%s&rn=100' % checkWord
return baiduURL
def getContent(baiduURL): #get the content of the serp
uaList = ['Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+1.1.4322;+TencentTraveler)',
'Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729)',
'Mozilla/5.0+(Windows+NT+5.1)+AppleWebKit/537.1+(KHTML,+like+Gecko)+Chrome/21.0.1180.89+Safari/537.1',
'Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1)',
'Mozilla/5.0+(Windows+NT+6.1;+rv:11.0)+Gecko/20100101+Firefox/11.0',
'Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0;+SV1)',
'Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0;+GTB7.1;+.NET+CLR+2.0.50727)',
'Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0;+KB974489)']
headers = {'User-Agent': random.choice(uaList)}
r = requests.get(baiduURL, headers = headers)
return r.content
def getLastURL(rawurl): #get final URL while there're redirects
r = requests.get(rawurl)
return r.url
def getAtext(atext): #get the text with and
pat = re.compile(r'(.*?)')
match = pat.findall(atext.replace('\n', ''))
pureText = match[0].replace('', '').replace('', '')
return pureText.replace('\n', '')
def getCacheDate(t): #get the date of cache
pat = re.compile(r'.*?(\d{4}-\d{1,2}-\d{1,2}) ')
match = pat.findall(t)
cacheDate = match[0]
return cacheDate
def getRank(checkWord, domain): #main line
checkWord = checkWord.replace('\n', '')
checkWord = decodeAnyWord(checkWord)
baiduURL = createURL(checkWord)
cont = getContent(baiduURL)
soup = BeautifulSoup.BeautifulSoup(cont)
results = soup.findAll('table', {'class': 'result'}) #find all results in this page
for result in results:
checkData = unicode(result.find('span', {'class': 'g'}))
if re.compile(r'^[^/]*%s.*?' %domain).match(checkData.replace('', '').replace('', '')): #改正则
nowRank = result['id'] #get the rank if match the domain info
resLink = result.find('h3').a
resURL = resLink['href']
domainURL = getLastURL(resURL) #get the target URL
resTitle = getAtext(unicode(resLink)) #get the title of the target page
rescache = result.find('span', {'class': 'g'})
cacheDate = getCacheDate(unicode(rescache)) #get the cache date of the target page
res = u'%s, 第%s名, %s, %s, %s' % (checkWord, nowRank, resTitle, cacheDate, domainURL)
return res.encode('gb2312')
break
else:
return '>100'
domain = 'www.baidu.com' #set the domain which you want to search.
print getRank('百度', domain)

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Ramai pemaju laman web menghadapi masalah mengintegrasikan perkhidmatan node.js atau python di bawah seni bina lampu: lampu sedia ada (Linux Apache MySQL PHP) Laman web seni bina memerlukan ...

Apabila menggunakan crawler scapy, sebab mengapa fail penyimpanan berterusan paip tidak boleh ditulis? Perbincangan Ketika belajar menggunakan Crawler Scapy untuk Crawler Data, anda sering menemui ...

Proses Python Pool mengendalikan permintaan TCP serentak yang menyebabkan pelanggan terjebak. Apabila menggunakan Python untuk pengaturcaraan rangkaian, adalah penting untuk mengendalikan permintaan TCP serentak dengan cekap. …

Sangat meneroka kaedah tontonan python funcools.partial Object in Funcools.Partial Menggunakan Python ...

Penyelesaian kepada Isu Kebenaran Semasa Melihat Versi Python di Terminal Linux Apabila anda cuba melihat versi Python di Terminal Linux, masukkan Python ...

Pilihan Perpustakaan Pembangunan Aplikasi Desktop Python Python Banyak pemaju Python ingin membangunkan aplikasi desktop yang boleh dijalankan pada kedua-dua sistem Windows dan Linux ...

Bermula dengan Python: Lukisan Grafik Hourglass dan Pengesahan Input Artikel ini akan menyelesaikan masalah definisi berubah -ubah yang dihadapi oleh pemula python dalam program lukisan grafik Hourglass. Kod ...

Penukaran dan Statistik Data: Pemprosesan yang cekap bagi set data besar Artikel ini akan memperkenalkan secara terperinci bagaimana untuk menukar senarai data yang mengandungi maklumat produk kepada yang lain yang mengandungi ...
