Scrapy & Django项目

# 需求: 编写爬虫项目与Django项目详解和, 将爬取到的数据展示到前端页面上

# spider编写:
import scrapy
from dl.items import DlItem
class PSpider(scrapy.Spider):
name = ‘p‘
# allowed_domains = [‘www.baidu.com‘]
start_urls = [‘https://www.kuaidaili.com/free/‘]

def parse(self, response):
# print(response)
tr_list = response.xpath(‘//*[@id="list"]/table/tbody/tr‘)
# print(tr_list)
for tr in tr_list:
ip = tr.xpath(‘./td[1]/text()‘).extract_first()
port = tr.xpath(‘./td[2]/text()‘).extract_first()
typ = tr.xpath(‘./td[3]/text()‘).extract_first()
protocal = tr.xpath(‘./td[4]/text()‘).extract_first()
position = tr.xpath(‘./td[5]/text()‘).extract_first()
# print(ip, port, protocal, position)
item = DlItem()
item[‘ip‘] = ip
item[‘port‘] = port
item[‘typ‘] = typ
item[‘protocal‘] = protocal
item[‘position‘] = position
print(item)
yield item

# items编码
import scrapy
class DlItem(scrapy.Item):
ip = scrapy.Field()
port = scrapy.Field()
typ = scrapy.Field()
protocal = scrapy.Field()
position = scrapy.Field()

# Django项目创建与所有配置:
1.models创建:
from django.db import models

# Create your models here.

class Proxy(models.Model):
ip = models.CharField(max_length=50)
port = models.CharField(max_length=50)
typ = models.CharField(max_length=50)
protocal = models.CharField(max_length=50)
position = models.CharField(max_length=50)

2.在scrapy框架项目中嵌入django
import os
import sys
sys.path.append(os.path.dirname(os.path.abspath(‘.‘)))
os.environ[‘DJANGO_SETTINGS_MODULE‘] = ‘proxyscan.settings‘
# 手动初始化Django:
import django
django.setup()

3.修改爬虫item:
import scrapy
from scrapy_djangoitem import DjangoItem
from proxy import models
class DlItem(DjangoItem):
django_model = models.Proxy

4.pipeline编码:
class DlPipeline(object):
def process_item(self, item, spider):
print(‘开启数据库, 进行数据存储‘)
item.save()
print(‘关闭数据库‘)
return item

5.Django项目迁移数据库与admin后台配置
Python manage.py makemigrations
python manage.py migrate

from proxy.models import Proxy
admin.site.register(Proxy)

# 创建超级用户:
Python manage.py createsuperuser

# 路由:
from django.conf.urls import url
from django.contrib import admin
from proxy.views import index

urlpatterns = [
url(r‘^admin/‘, admin.site.urls),
url(r‘^index/‘, index),
]

# 视图函数:
from django.shortcuts import render
from proxy.models import Proxy
def index(requests):
p = Proxy.objects.all()
return render(requests, ‘index.html‘, {"p":p})

# 前端代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
<link href="https://cdn.bootcss.com/twitter-bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="row" >
<div class="col-md-10 col-md-offset-2" style="margin:0 auto">
<div class="panel panel-primary">
<div class="panel-heading" style="margin-top:50px">
<h3 class="panel-title">代理IP一览表</h3>
</div>
<div class="panel-body">
<table class="table table-striped">
<thead>
<tr>
<th>IP</th>
<th>Port</th>
<th>Type</th>
<th>Protocal</th>
<th>Positon</th>
</tr>
</thead>
<tbody>
{% for i in p %}
<tr>
<th>{{ i.ip }}</th>
<td>{{ i.port }}</td>
<td>{{ i.typ }}</td>
<td>{{ i.protocal }}</td>
<td>{{ i.position }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>

</body>
</html>

原文地址:https://www.cnblogs.com/huanghaobing/p/11755256.html

时间: 2024-11-02 10:35:55

Scrapy & Django项目的相关文章

linux搭建django项目基本步骤

一 linux下django基本项目搭建流程:M model 用于与数据库交互V view 接受前台请求 调用model获取结果,调用T获取页面,返回给前台T template 接受view的要求 生成一个网页给V 1 创建项目命令: django-admin startproject 项目名 2 为项目创建一个应用(django中一个应用就是一个功能模块): 在项目目录下 该目录下有一个manage.py文件 python manage.py startapp 应用名 3 安装应用,将应用与项

运行django项目出现Invalid HTTP_HOST header: &#39;192.168.1.111:8000&#39;. You may need to add &#39;192.168.1.111&#39; to ALLOWED_HOSTS

Request Method: GET Request URL: http://202.201.38.70:8000/angular Django Version: 1.11.3 Exception Type: DisallowedHost Exception Value: Invalid HTTP_HOST header: '202.201.38.70:8000'. You may need to add '202.201.38.70' to ALLOWED_HOSTS. Exception

使用uWSGI部署django项目

先说说什么是uWSGI吧,他是实现了WSGI协议.uwsgi.http等协议的一个web服务器,那什么是WSGI呢? WSGI是一种Web服务器网关接口.它是一个Web服务器(如nginx)与应用服务器(如uWSGI服务器)通信的一种规范(协议). 还有一种wsgi,uwsgi是一种线路协议而不是通信协议,在此常用于在uWSGI服务器与其他网络服务器的数据通信.uwsgi协议是一个uWSGI服务器自有的协议,它用于定义传输信息的类型(type of information). 部署步骤: 1.

Django项目导入Eclipse运行调试

受不了没有调试的感觉. 前提是Eclipse插件已经安装完成并且可以成功运行例子.参考:http://blog.csdn.net/jerome_s/article/details/46340079 1. 新建一个"Pydev Project"项目 2. project contents选择要导入的项目的路径 (如果有提示多余文件什么的可进入目录删除对应文件即可) 3. 将项目设置为django项目 右击项目 4. 设置项目manage.py 右击项目属性 5. 运行 右击项目debug

django项目创建和结构解释

一.django项目创建 1.手动创建 1)查看是否安装了Django 没有安装的话可以用install命令安装. 2)创建Django项目 3)查看创建的项目 4)创建应用 Django中至少需要一个应用app,用来处理业务逻辑. 2.利用pycharm创建项目 二.Django结构解释 1.项目结构解释 第一层demo就是创建的整个Django项目. 第二层demo是项目的主程序目录. manage.py是整个项目的主控制文件. settings.py是整个项目的设置文件. urls.py是

django复习--如何建立一个django项目

1.cd到项目文件夹下 2.创建一个django项目:django-admin startproject firstsite(项目名称) 3.若同时安装了2.x和3.x版本的python,则需要在manage.py最上方把#!/usr/bin/env python 改为 #!/usr/bin/env python3 (接下来以此情况为例) 4.创建一个django实例:python3 manage.py startapp firstapp(实例名称)

Django 1.6 最佳实践: 如何设置django项目的设置(settings.py)和部署文件(requirements.txt)

Django 1.6 最佳实践: 如何设置django项目的设置(settings.py)和部署文件(requirements.txt) 作者: Desmond Chen,发布日期: 2014-05-17, 修改日期: 2014-05-18 在Django 1.6中的settings.py中可以修改130多项设置, 但大多数都继承自默认值. 设置是在web服务器启动时首次载入的, 服务器重启时重新载入, 因此, 程序员们应尽量避免修改正式服务器上使用的settings.py文件. 以下是一些我们

向云服务器部署django项目

1. ftp服务器的搭建 为了把项目文件上传至云服务器,我们需要在云服务器端设置ftp服务,进行文件传输. (1)云服务器端 a. 首先,我们需要安装vsftpd,输入命令 sudo apt-get install vsftpd -y b. 安装成功后,我们需要建立一个ftp专用账户. 检查一下nologin文件夹的位置,一般在/usr/sbin/nologin或者/sbin/nologin下.若没有这个文件夹,就在/sbin下新建一个. 进入nologin之后,输入命令: useradd -d

创建Django项目

一.安装Python和Django 网上都有教程.... 二.创建一个Django项目 Django主要使用django-admin.py这个脚本来管理项目,默认情况下,Django是安装到Python的安装目录之内:"$Python/Lib/site-packages/django"目录之中,我们调用django-admin.py就需要输入长长的地址:"E:/Program Files/Python/Lib/site-packages/django/bin/django-a