本文来源吾爱破解论坛
django框架例子,非常简单适合参考学习入门!
hello word
[Python] 纯文本查看 复制代码
def hello_world(request): return HttpResponse("hello world!")
hello_world.jpg (13.26 KB, 下载次数: 0)
下载附件 保存到相册
爬取去哪儿景点信息并展示
前面的帖子有分享的爬虫
[Python] 【爬虫】简单的demo,去哪儿门票相关信息爬取 https://www.52pojie.cn/thread-1038403-1-1.html
项目urls:
[Python] 纯文本查看 复制代码
from django.contrib import admin from django.urls import path,include urlpatterns = [ path('admin/', admin.site.urls), path('qunaer/', include('qunaer.urls')), ]
app urls:
[Asm] 纯文本查看 复制代码
from django.urls import path from . import views urlpatterns=[ path('',views.hello_world,), path('index/',views.index,) ]
models 模型层:
[Python] 纯文本查看 复制代码
from django.db import models # Create your models here. class Qner(models.Model): name=models.CharField(max_length=20,verbose_name="景点名字") address=models.CharField(max_length=60,verbose_name="景点地址") price=models.CharField(max_length=10,verbose_name="景点地址") def __str__(self): return self.name
切记在django运行调试py,一定要加载django,不然会报错!
[Python] 纯文本查看 复制代码
import os import django os.environ.setdefault('DJANGO_SETTINGS_MODULE', '项目名称.settings') django.setup()
app 视图层:
[Python] 纯文本查看 复制代码
import os import django os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'qunaer_spider.settings') django.setup() from django.shortcuts import render from django.http import HttpResponse from qunaer.models import Qner from django.core.paginator import Paginator # Create your views here. def hello_world(request): return HttpResponse("hello world!") def index(request): qunaer_list=Qner.objects.all() paginator = Paginator(qunaer_list, 15) page = request.GET.get('page') page_obj = paginator.get_page(page) return render(request, 'qunaer/index.html',{ 'page_obj': page_obj, 'paginator': paginator, 'is_paginated': True, }) # Create your views here. from fake_useragent import UserAgent import requests,time from bs4 import BeautifulSoup class Qnaer(object): def __init__(self,city): self.ua = UserAgent() self.headers = {"User-Agent": self.ua.random} self.url = 'https://piao.qunar.com/ticket/list.htm?keyword=' self.city = city self.pagemax = int() self.hrefs = [] self.data = list() def get_pagemax(self): url = f'{self.url}{self.city}' response = requests.get(url, headers=self.headers) if response.status_code == 200: soup = BeautifulSoup(response.text, 'html.parser') a = soup.find('div', class_="pager").find_all('a') pagemax = a[-2].get_text() self.pagemax = int(pagemax) def get_urllist(self): for i in range(1, self.pagemax + 1): url = f'{self.url}{self.city}&page={i}' print(url) response = requests.get(url, headers=self.headers) time.sleep(2) if response.status_code == 200: soup = BeautifulSoup(response.text, 'html.parser') divs = soup.find_all('div', class_="sight_item_detail clrfix") for div in divs: detail = dict() name = div.find('a', class_="name").get_text() detail['name']=name address = div.find('p', class_="address color999").find('span').get_text() detail['address']=address try: price = div.find('span', class_="sight_item_price").find('em').get_text() detail['price']=price except: price="价格不详!" detail['price']=price self.data.append(detail) href = div.find('h3', class_='sight_item_caption').find('a')['href'] href = f'https://piao.qunar.com{href}' self.hrefs.append(href) print(self.hrefs) time.sleep(5) def save_data_to_model(self): for item in self.data: new_item = Qner() new_item.name = item['name'] new_item.address = item['address'] new_item.price = item['price'] new_item.save() if __name__ == "__main__": spider=Qnaer("北京") spider.get_pagemax() spider.get_urllist() spider.save_data_to_model()
超级管理员账号/密码:admin/123456
最终效果:
index
index.jpg (169.83 KB, 下载次数: 0)
下载附件 保存到相册
page
page.jpg (178.02 KB, 下载次数: 0)
下载附件 保存到相册
项目打包,整个项目文件
链接: https://pan.baidu.com/s/1wR8dtq2oD4yEAIY6QA48Lg 提取码: cru6
如果对你有帮助,请给个好评!!
欢迎交流 python!
版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。