利用python批量查询企业信息_python批量查询百度收录
Python是一种非常适合SEO学习的语言,不仅语法简单,而且很多功能还能通过各种库来实现,可谓SEO居家必备的“良药”。
背景
作为SEO,每天都有一批数据需要记录,抓取方面,收录方面,流量方面等。
在收录方面,收录率是非常有意义的一个指标,可以直接反映整站或者某频道的收录情况。
我之前使用的是昆哥的软件,可以随机抽取一批页面查询,但后来觉得可以用python做得更自动化,更方便,于是就有了这个脚本。
思路
脚本的整体思路是这样的:
用搜索关键词构建百度搜索URL(查询收录的时候搜索词就是待查页面URL)
获取百度搜索结果页内容
提取百度搜索结果(这里是最终的真实URL)
收录判定
具体代码
#coding=utf-8
import requests
from bs4 import BeautifulSoup as bs
import re
headers = {
'User-Agent': 'Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0;+GTB7.1;+.NET+CLR+2.0.50727)'
} # 设置UA模拟用户,还可设置多个UA提高搜索成功率
def baidu_url(word): # 构建百度搜索URL;因为是查收录,所以只显示了前10个搜索结果,还可以通过rn参数来调整搜索结果的数量
'''
get baidu search url
'''
return 'https://www.baidu.com/s?wd=%s' % word
def baidu_cont(url): # 获取百度搜索结果页内容
r = requests.get(url, headers=headers)
return r.content
def serp_links(word): #获取百度搜索结果的最终URL
'''
get baidu serp links with the word
'''
b_url = baidu_url(word)
soup = bs(baidu_cont(b_url))
b_tags = soup.find_all('h3', {'class': 't'}) # 获取URL的特征值是通过class="t"
b_links = [tag.a['href'] for tag in b_tags]
real_links = []
for link in b_links: # 使用requests库获取了最终URL,而不是快照URL
try:
r = requests.get(link, headers=headers, timeout=120)
except Exception as e:
real_links.append('page404')
else:
real_links.append(r.url)
return real_links
def indexer(url): # 待查URL是否在百度搜索结果的URL列表中,如果在就表示收录,反之未收录
indexed_links = serp_links(url)
if url in indexed_links:
return True
else:
return False
特点
之前也写过python的收录脚本,但感觉不准确,于是这次算是改良版。本次的脚本也有一些优势和劣势。
优势:
准确率高。脚本中比对的是百度搜索结果中最终的真实的URL,而不是快照URL,所以完全不会出现偏差(注:百度在去年做了调整,将标题上链接改为baidu的跳转链接,而不是真实链接);
函数封装。本次脚本跟之前最大的不同就是进行了封装,每次使用只要import一下即可(我对发送邮件也做了封装);当然,也是为了方便其他百度查询,比如百度排名,百度site值;
容错处理。因为平常都是批量查询,并且结合crontab定时任务,所以没有容错很可能中断。我主要通过try和requests的timeout来处理,最主要是前者;
劣势:
速度慢。由于SERP每个结果都要返回最终URL,难免增加了很多次查询,这就导致速度很慢;但这也是目前较稳妥的处理方式,因为查询速度快会导致百度查询失败,弹出验证码;如果要高速查询也不是没有办法,可以通过多线程+更换host来实现;
需要自定义。之前的脚本就是傻瓜版,把URL放在一个文件里,然后运行程序就会看到结果,现在的脚本只能算是一个小引擎,需要投入使用还需要自己配置;不过剩下的工作也不多了,而且自己配置下更能满足自己的需求。
转自【张亚楠Blog】https://www.zhidaow.com/
利用python批量查询企业信息_python批量查询百度收录相关推荐
- 利用python批量查询企业信息_python实现批量获取指定文件夹下的所有文件的厂商信息...
本文实例讲述了python实现批量获取指定文件夹下的所有文件的厂商信息的方法.分享给大家供大家参考.具体如下: 功能代码如下: import os, string, shutil,re import ...
- python批量导入网页信息_python批量导入数据进Elasticsearch的实例
ES在之前的博客已有介绍,提供很多接口,本文介绍如何使用python批量导入.ES官网上有较多说明文档,仔细研究并结合搜索引擎应该不难使用. 先给代码 #coding=utf-8 from datet ...
- 利用python爬取租房信息_Python爬虫实战(1)-爬取“房天下”租房信息(超详细)
#前言html 先看爬到的信息:python 今天主要用到了两个库:Requests和BeautifulSoup.因此我先简单的说一下这两个库的用法,提到的都是此文须要用到的.编程 #Requests ...
- 利用python爬取租房信息_python爬取58同城租房信息
代码: # coding=utf-8 import sys import csv import requests from bs4 import BeautifulSoup ''' 遇到不懂的问题?P ...
- 利用python和Sen2cor对Sentinel2进行批量大气校正
利用python和Sen2cor对Sentinel2进行批量大气校正 p.s本文只适合大量的批量校正,一般两三幅影像的那种就直接搜批量校正就好了. 废话不多说,直接上代码 import os impo ...
- [Python] 【原创】[Python源码]企业支付宝自动批量转账脚本
[Python] [原创][Python源码]企业支付宝自动批量转账脚本 -- coding: utf-8 -- import sys import time import datetime impo ...
- 【Python例】利用 python 进行图片文字信息的提取 --- OCR-EasyOCR
[Python例]利用 python 进行图片文字信息的提取 - OCR-EasyOCR 本文主要用于记录,并使用 python 脚本进行图片文字信息的生成. 什么是 OCR? OCR OCR(Opt ...
- 利用Python调用ECMWF欧洲中心API批量下载数据
前段时间由于需要下载ECMWF(欧洲中期天气预报中心)的再分析数据,学习了如何利用Python调用ECMWF欧洲中心API进行批量下载.这种下载ECMWF数据的方法在官网上有非常详细的介绍.我只是对这 ...
- python批量处理excel数据_Python批量处理Excel,真香(超实用!)
本文介绍了利用Python批量处理Excel文件的一种方法,超实用,超简单.轻松可实现,节省时间不只一点点.文章不长,功能超强. 上菜. 某一天,老板丢个我一个任务.需要将400多张表按照一定条件进行 ...
- 利用Python在NASA Earthdata Search 上批量下载MODIS数据
1.下载网址:https://search.earthdata.nasa.gov 2.第一步:注册账号,右上角Earthdata Login,如实注册,身份可以选择教育.用途可以选择科研团队,记得添加 ...
最新文章
- Moment矩计算公式
- C/C++ OpenCV滑动条的创建与使用
- KMP——怪盗基德的挑战书(hdu4552)
- WPF 绕圈进度条(一)
- android学习笔记---50_样式与主题,给控件使用样式,给应用使用主题
- Android 两个Activity进行数据传送 发送
- Python学习教程:Python自动化测试框架需要学习哪些?
- 汇编和c语言函数的参数传递,c文件汇编后函数参数传递的不同之处
- waf绕过—过360主机卫士sql注入
- 外联式 vue+element ui 表格导出e'xcel
- 微信撤回消息在服务器可以看到吗,微信撤回消息可以查看了,对方撤回了什么一目了然...
- bzoj3029 守卫者的挑战
- 百万调音师—Audition降噪
- html 文字输出语音,网页上通过JS实现文本的语音朗读
- 由点金系统想到的——如何剥开系统美丽的外衣
- 浅析IBM的竞争优势
- 操作系统面经总结—虚拟内存、内存分页、内存交换与覆盖等
- AIOT时代来临,物联网平台(IoT Platform)真有那么重要吗?
- SVA 断言翻译笔记(七) 16.15Disable iff用法
- 牛逼!前端神器,永远滴神!
热门文章
- vue2.0和3.0引入阿里字体图标库的步骤
- 植物大战僵尸简单外挂原理及实现
- win10安装visio2010出错_win10 office2013安装错误1907解决方法
- web应用开发相关技术,CSS盒模型概述
- c语言如何判断字符类型,数据类型怎么判断 C语言中如何判断数据类型
- python抢课_一个用python实现的东方时尚(驾校)抢课程序
- input隐藏边框、设置透明背景色
- c++学习书籍推荐《深度探索C++对象模型》下载
- 毕业设计,微信小程序-购物小程序
- STM32cube HAL库 I2C实现LM75数字温度传感器温度读取,并串口打印