测评:光年页面内容采集器
优采云 发布时间: 2022-10-04 15:11测评:光年页面内容采集器
将要采集 URL 保存在文本文件的文本文件中,然后将其导入。
设置页面
需要采集的规则,如以下示例所示采集文章页面内容的正文,支持多线程、IP交换和随机间隔
采集结果,这个结果只是采集正文的简单例子,你需要采集页面上的其他信息可以根据设置显示并截取软件下载地址:d.shop123.io/tongyong/caijiqi.zip
技术文章:SEO工具脚本,Python百度下拉框关键词采集工具_二爷记的博客
对于词研究,每个seoer都必须知道,而且除了比较热门的百度相关搜索词,百度下拉框关键词应该也是很多人研究的范围,但是大部分人都是为了下拉box 刷字量,毕竟百度下拉框关键词采集已经被淹没了。
百度下拉的正式名称是百度建议词,也称为百度联想词或百度下拉菜单。是百度为了方便广大网友的搜索,提高输入效率而推出的一项服务。
比如我们在百度输入“marketing”这个词,百度会从推荐词条库中检索以“marketing”这个词开头的词条,按照搜索量从大到小排序。形成下拉菜单。百度下拉菜单的最大数量为 10 个。
百度下拉框关键词的含义:
它可以用作长尾词和标题。毕竟,它是一个搜索选项,可以在用户搜索时触发 关键词。
许多人使用下拉词来引导流量,例如曝光品牌并将其引导到指定页面。您可以采集和分析竞争对手的相关操作,也可以自己曝光自己的品牌。看你的意见!
网上留下了很多采集工具和源代码。到了这里,这个人渣已经被清理掉了。我会再次在这里分享。昨晚,我哥问了这件事。事实上,它来了又走了。就是这些东西,没什么特别的!
版本一:
采集的直接网页抓取实现下拉词
def get_keywords(word):
url=f"https://www.baidu.com/sugrec?pre=1&ie=utf-8&json=1&prod=pc&wd={word}"
html=requests.get(url)
html=html.json()
#print(html)
#print(html['g'])
key_words=[]
for key_word in html['g']:
print(key_word['q'])
key_words.append(key_word['q'])
#print(key_words)
return key_words
版本二:
使用官方界面
例如:
def get_sug(word):
url = 'https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=%s&sugmode=2&json=1&p=3&sid=1427_21091_21673_22581&req=2&pbs=%%E5%%BF%%AB%%E6%%89%%8B&csor=2&pwd=%%E5%%BF%%AB%%E6%%89%%8B&cb=jQuery11020924966752020363_1498055470768&_=1498055470781' % word
r = requests.get(url, verify=False) # 请求API接口,取消了HTTPS验证
cont = r.content # 获取返回的内容
res = cont[41: -2].decode('gbk') # 只取返回结果中json格式一段,并且解码为unicode
<p>
res_json = json.loads(res) # json格式转换
return res_json['s'] # 返回关键词列表
</p>
版本三:
另一个接口地址
def get_word(word):
url=f'http://suggestion.baidu.com/su?wd={word}&sugmode=3&json=1'
html=requests.get(url).text
html=html.replace("window.baidu.sug(",'')
html = html.replace(")", '')
html = html.replace(";", '')
#print(html)
html = json.loads(html)
key_words=html['s']
#print(key_words)
return key_words
本质上,二和三本质上是一样的,大家一起来看看,参考使用吧!
扩大的视野:
这里有个小技巧,就是在关键词后面输入w,就会出现一连串以w开头的关键词用拼音,比如“黄山w”,就会出现“黄山温泉”。《天堂》、《黄山五绝》等关键词(见上图)。因此,当我们遍历 a~z 时,就会有更多的 关键词。
def get_more_word(word):
more_word=[]
for i in 'abcdefghijklmnopqrstuvwxyz':
more_word.extend(get_keywords('%s%s'%(word,i)))
print(more_word)
print(len(more_word))
print(len(list(set(more_word))))
return list(set(more_word)) #去重操作
<p>
def get_more_sug(word):
all_words = []
for i in 'abcdefghijklmnopqrstuvwxyz':
all_words += get_sug(word+i) # 遍历字母表 | 利用了上一个函数
print(len(list(set(all_words))))
return list(set(all_words)) # 去重操作
</p>
这里使用版本2的接口形式,避免被和谐
但是如果使用requests模块请求无效的证书网站会直接报错
您可以将 verify 参数设置为 False 来解决此问题
r = requests.get(url, verify=False)
但是设置 verify=False 会引发 InsecureRequestWarning 警告
看起来很糟糕
解决方案:
from requests.packages.urllib3.exceptions import InsecureRequestWarning
# 禁用安全请求警告
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
运行结果
获取参考源代码