Code Monkey home page Code Monkey logo

spider_flask's Introduction

spider_flask

简介:

基于Python+Flask轻量级框架的豆瓣爬虫数据分析实战项目

用Flask构建一个豆瓣电影top250排行榜及其详细信息

通过抓取抓取豆瓣top250的电影并分析,让其简单明了地查看到电影top250排行榜及其详细信息,方便根据其信息选择电影。

为什么使用Flask?

Flask:Flask扩展丰富,不臃肿,可自由选择组合各种插件,性能优越,相比其他的web框架十分的轻量级,设计哲学很优雅,易于学习,小型的项目快速的开发,大型的项目也没压力。非常的灵活。

本项目采用的技术栈

BeautifulSoup4、flask、pymysql
或者使用xpath也可以,这里大部分用的是bs4
数据库使用的是MYSQL
  • 轻量级web应用框架
  • 将不同的功能模块化
  • 优化项目的结构
  • 增强可读性,易于维护

反爬策略设置

这里本项目应对反爬虫策略主要包括以下几种:

  1. User-Agent设置:对请求头中的User-Agent值进行检查,使用random随机拼接UA头反爬。
  2. IP地址限制:监控IP地址的访问频率,如果某个IP地址在短时间内发送了过多请求,则限制或封锁该IP地址。所以采用ip代理池随机选取ip地址进行访问。
  3. HTTP Referer检测:检查请求的Referer字段,如果请求没有正确的来源页面信息,可能是通过爬虫工具直接访问的。
  4. 行为分析:分析正常用户与爬虫在访问网站时的行为模式差异,如请求频率、页面浏览顺序等,识别出爬虫的行为,所以进行时间间隔,行为请求的差异来反爬。
  5. Cookies和Session验证:服务器通过设置Cookies和Session状态来验证用户,爬虫请求中如果没有正确的Cookies信息可能会被拒绝。
    def get_random_ua():
        user_agents = [
            // 这个列表将包含常见的User-Agent字符串用于模拟不同浏览器的请求
        ]
        return random.choice(user_agents)  # 从列表中随机选择一个User-Agent返回
    
    def get_random_ip():
        proxy_list = [
            // 这个列表将包含代理服务器的地址格式一般为'IP:PORT'
        ]
        proxies = { 'https': random.choice(proxy_list) }  # 为https请求随机选择一个代理服务器
        return proxies  # 返回代理服务器的设置
    
    def generate_random_cookie():
        // 这个函数负责生成随机的Cookie用于模拟真实用户的会话
        cookie_parts = [f'{key}={value}' for key, value in cookie_template.items()]
        cookie = '; '.join(cookie_parts)  # 生成符合HTTP规范的Cookie字符串
        return cookie  # 返回生成的Cookie字符串

    222

    flask站点界面截图

    在app.py里面右键运行,并访问该站点 image

    image

     

     

     

    数据库主要结构

     

    image image

spider_flask's People

Contributors

xuyuanyyds avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.