import requestsfrom fake_useragent import UserAgentfrom bs4 import BeautifulSoupua = UserAgent()useragent=ua.firefoxheaders={'user-agent':useragent}pm=Truedef fanye(): guanjianci = input('需要查询的关键词:') pages=int(input('需要查询前几页:')) wangzhi=input('目标网址:') for i in range(pages): if pm==True: num=i*10 url='https://www.baidu.com/s?wd='+guanjianci+'&pn='+str(num) chaxun(wangzhi,url,i) else: breakdef chaxun(wangzhi,url,num): global pm r = requests.get(url,headers=headers) soup=BeautifulSoup(r.text,'lxml') tits=soup.find_all('h3',class_='t') paiming = 1 for biaoti in tits: lianjie=biaoti.a['href'] try: r = requests.get(lianjie, headers=headers, allow_redirects=True) except: paiming += 1 continue kwww=r.url # print(kwww) tuiurl=[] if kwww.find('www.baidu.com')!=-1: tuiurl.append(kwww) else: title = biaoti.text.strip() if kwww.find(wangzhi)!=-1: # title = biaoti.text.strip() print(num+1,paiming,title) pm=False break else: paiming+=1if __name__ == '__main__': fanye()
今天又想搞一下python,想来想去就再研究了下关键词排名查询,这里主要是想学习下requests.get()中的
allow_redirects参数,这个参数的意思是发生请求后返回重定向的结果,刚好试用百度关键词排名查询。因为现在百度关键词查询结果中,很多结果并没有带网址,而是带了网站名称(大型网站基本都是这样了,这是百度给予的一个特权,刚开始的时候小网站也适用,我们公司就用过,后来被取消了。)
好了,废话不多说,举例示范:
查找关键词:深圳SEO
在前10页中查询
查询网址为我的博客www.liaojinhua.com
最后输出结果为:4 8 深圳SEO优化技术交流分享-启明SEO博客
4代表第4页,8代表第八位,也就是深圳SEO这个词,我的博客排在第48名。