百度搜索结果 转换_如何批量导出百度搜索结果,开拓业务

最近从项目方变成了“项目荒”,于是想从百度找到突破口:把百度搜索结果批量导出excel,通过批量查找分析,找到有利可图的业务。

原理:

别人在引流的大概率是有利可图的,当然,要懂得避开一些韭菜盘;

使用场景:

找业务,找资料,找违规贴(从百度中寻找知乎违规贴,违规的东西通常是暴利的)

步骤说明:

下面贴上python爬虫代码:

导入requests, baiduspider, pandas库,其中baiduspider库主要针对百度的,支持爬取百度网页,图片,百度知道等等,可惜不支持百度竞价广告,不然更有趣,详情请看github;

import requests
import sys
import pandas as pd
# 导入BaiduSpider
from baiduspider import BaiduSpider
from pprint import pprint
# 实例化BaiduSpider
spider = BaiduSpider()

定义爬取函数baidu(w),形参w是传入搜索字符串,nums是搜索页数;

注意:

  1. range(1,nums)是指从第1页到第n-1页;
  2. 搜索结果会筛选掉百度产品,比如第一个结果是百度百科的内容,那么从第二个结果开始输出;
  3. 返回值
def baidu(w):
    nums = int(input("请输入爬取前几页的结果:")) # 前n页的结果,不包括第n页
    print('正爬取前' + nums + '页内容')
    for num in range(1,nums):
        # 百度网页搜索,包含近似推荐
        page_res = spider.search_web(query = w, pn = num)
        #网页搜索,不含近似推荐
        no_res = page_res["results"][2:]
        # 仅输出网页标题,简述,地址,时间
        tem_res = pd.DataFrame(no_res, columns = ['title', 'des', 'url', 'time'])
        global targ_res
        targ_res = pd.concat([targ_res, tem_res]).drop(labels = 0)
        
    return targ_res

定义传入搜索词函数search_word(),方便传入多个词组:

def search_word(words):
    for word in words:
        print('目前查询的字符是:' + word)
        baidu(w = word)

有时候我们在搜索与违规词有关的贴时,百度搜索正常显示搜索结果

a56464002a8786f2d0a586b2b258a775.png

但打开链接却是404页面,这是知乎及时删除,但百度快照没及时更新;

98060ebe71d1315ed86e6e9f691c2c4f.png

于是需要添加查询网页状态码

def getHttpStatusCode(url):
    userAgent = {"user-agent": "Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0", "Connection": "close"} # 添加一个user-agent,访问反爬虫策略严格的网站很有用
    timeOut = 4 # 请求超时时间设置为4秒
    try:
        request = requests.get(url, headers = userAgent, timeout = timeOut)
        httpStatusCode = request.status_code
        
        return httpStatusCode
    except requests.exceptions.HTTPError as e:
        
        return e

剩余代码:

targ_res = pd.DataFrame([])
words = input("请输入需要百度的内容,查询多个以英文逗号(,)隔开:").split(',')
search_word(words)

# 检测url是否404状态
status = []
for url in targ_res['url']:
    status.append(getHttpStatusCode(url))
targ_res['status'] = status 
print(targ_res)

### 表格到处 ###
writer = pd.ExcelWriter("D://data//百度搜索.xlsx")
targ_res.to_excel(writer,sheet_name = "1")
writer.save()

从excel中观察数据,寻找有用信息;

e674b940012112177bc236a8e2d87624.png

通过这爬虫脚本,可衍生出很多有意思的玩法,比如快速了解某细分领域的知识、分析同行如何做引流获客、观察目标网站百度收录数量及各页面权重等等。

当然,如果数据过多,不适合用excel人工筛选数据,可结合python的jieba库做分词处理,下一期我们重点讲解如何搭配jieba库对数据进行分类,并导出思维导图作快速筛选;

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值