前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >magical_spider远程采集方案

magical_spider远程采集方案

作者头像
李玺
发布2022-09-21 20:37:30
3730
发布2022-09-21 20:37:30
举报
文章被收录于专栏:爬虫逆向案例爬虫逆向案例

magical_spider

一个神奇的蜘蛛🕷项目,源码架构很简单,适用于数据采集任务。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

index页面示例:


项目地址

https://github.com/lixi5338619/magical_spider


使用说明

1、配置settings.py,启动 flask 服务

2、测试代码参考demo文件内容,运行过程主要借助runflow.py。

代码语言:javascript
复制
import requests

host = 'http://127.0.0.1:5000'

def magical_start(project_name,base_url = 'http://www.lxspider.com'):
    # 1、create browser and select session_id
    result = requests.post(f'{host}/create',data={'name':project_name,'url':base_url}).json()
    session_id,process_url = result['session_id'],result['process_url']
    return session_id,process_url


def magical_request(session_id,process_url,request_url):
    # 2、request browser_xhr
    data = {'session_id':session_id,'process_url':process_url,
            'request_url':request_url,'request_type':'get'}
    result = requests.post(f'{host}/xhr',data=data).json()
    return result['result']


def magical_close(session_id,process_url,process_name):
    # 4、close browser
    close_data = {'session_id':session_id,'process_url':process_url,'process_name':process_name}
    requests.post(f'{host}/close',data=close_data).json()

3、测试代码

GET请求

代码语言:javascript
复制
from demo.runflow import magical_start,magical_request,magical_close

project_name = 'cnipa'
base_url = 'https://www.cnipa.gov.cn'

session_id,process_url = magical_start(project_name,base_url)

print(len(magical_request(session_id, process_url,'https://www.cnipa.gov.cn/col/col57/index.html')))

magical_close(session_id,process_url,project_name)

POST请求

代码语言:javascript
复制
from demo.runflow import magical_start,magical_request,magical_close
import json

project_name = 'chinadrugtrials'
base_url = 'http://www.chinadrugtrials.org.cn'

session_id,process_url = magical_start(project_name,base_url)

data = {"id": "","ckm_index": "","sort": "desc","sort2": "","rule": "CTR","secondLevel": "0","currentpage": "2","keywords": "","reg_no": "","indication": "","case_no": "","drugs_name": "","drugs_type": "","appliers": "","communities": "","researchers": "","agencies": "","state": ""}
formdata = json.dumps(data)

print(magical_request(session_id=session_id, process_url=process_url,
                      request_url='http://www.chinadrugtrials.org.cn/clinicaltrials.searchlist.dhtml',
                      request_type='post',formdata=formdata
                      ))

magical_close(session_id,process_url,project_name)

4、index页可以查看和管理当前运行中的任务,也能查看系统内存和磁盘使用情况。

5、demo文件夹中有任务流程汇总runflow.py,以及抖音、药监局案例,单任务和多任务示例。


linux部署

1.安装chrome (自行选择安装位置) yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

2.检查chrome的版本 google-chrome --version

3.安装对应版本的 chromedriver_linux64 比如我的chrome版本是104.0.5112.79 wget https://npm.taobao.org/mirrors/chromedriver/104.0.5112.79/chromedriver_linux64.zip

4.解压 unzip chromedriver_linux64

5.授权 chmod 777 chromedriver

6.修改项目代码settings.py中的chromedriver路径

7.安装python依赖后启动flask项目

  • Python依赖 :flask、sqlite3、selenium、websockets、opencv-python、numpy
  • flask启动方式:python3 server.py

8.开启服务器端口访问权限

9.运行项目测试


本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-08-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • magical_spider
  • 项目地址
  • 使用说明
  • linux部署
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档