[Python] seo站点关键词爬虫



[Python] seo站点关键词爬虫

特别声明:本站资源分别为免费资源、查看密码或解压密码资源、三个级别VIP会员资源。本站所有发布的内容都是安全,请放心下载!本站不可能所有资源都可以商业用途,原创或部分除外!如:商业用途请联系原作者购买正版。与本站无关!若侵犯到您的权益,请联系本站删除,我们将及时处理!

分享

exe下载链接:https://pan.baidu.com/s/12Iy2PbXAl488TH2Ha1Neyg
提取码:6666
基于sogou的站点关键词查询,自动保存前200个关键词标题到excel,路径为当前路径

 

import re
import aiohttp
import asyncio
import aiofiles
from fake_useragent import UserAgent
import requests
 
ua = UserAgent().random
 
class Spider(object):
 
    def __init__(self,cookies):
        self.headers = {'User-Agent': ua}
        self.cookies = cookies
        self.url = 'http://www.sogou.com/web'
        self.path = '.'                          #存储路径(默认当前路径)
 
    async def get_url(self, url,params):
        async with aiohttp.ClientSession() as client:
            async with client.get(url, headers=self.headers,params=params,cookies=self.cookies) as resp:
                if resp.status == 200:
                    return await resp.text()
 
    async def parsel_data(self,param,query):
        semaphore = asyncio.Semaphore(5)
        html = await self.get_url(self.url,param)
        excel_path = '/'.join([self.path,f'{query}.xlsx'])
        data_list = re.findall('""><!--awbg\d+-->(.*?)</a>',html)
        tasks = [asyncio.create_task(self.write_data(excel_path,data,semaphore)) for data in data_list]
        await asyncio.wait(tasks)
 
    async def write_data(self,path,data,semaphore):
        async with semaphore:
            async with aiofiles.open(path, 'a') as f:
                print(data)
                data = data + '\n'
                await f.write(data)
 
 
 
    async def main(self,):
        query = input('请输入要查询的域名:')
        print('--------------------开始爬取-------------------')
        for page in range(1,21):
            params = {
                "query": f"site:{query}",
                'page': int(page)
            }
            await self.parsel_data(params,query)
        print('--------------------爬取完成-------------------')
 
def get_new_cookies():    #获取最新的cookie防止访问次数超限
    url = 'https://v.sogou.com/v?ie=utf8&query=&p=40030600'
    headers = {'User-Agent': ua}
    rst = requests.get(url=url,
                       headers=headers,
                       allow_redirects=False,)
    cookies = rst.cookies.get_dict()
    return cookies
 
if __name__ == '__main__':
    cookie = get_new_cookies()
    run = Spider(cookie)
    asyncio.run(run.main())
分享到:
打赏
未经允许不得转载:

作者: cj13888, 转载或复制请以 超链接形式 并注明出处 易启发资源网
原文地址: 《[Python] seo站点关键词爬虫》 发布于2022-1-6

评论


切换注册

登录

忘记密码?

您也可以使用第三方帐号快捷登录

切换登录

注册

[Python] seo站点关键词爬虫

长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏