ELK之开心小爬爬
1.开心小爬爬
在爬取之前需要先安装requests模块和BeautifulSoup这两个模块
'''
https://www.autohome.com.cn/all/
爬取图片和链接
写入数据库里边
标题:title summary a_url img_url tags... #https://www.autohome.com.cn/all/3/#liststart #访问地址
#懒加载,访问到才加载内容
安装:
pip install requests
pip install BeautifulSoup4
pip install -i https://pypi.doubanio.com/simple/requests 设计表结构将数据存储到数据库中
'''
import requests
from bs4 import BeautifulSoup
from concurrent.futures import ThreadPoolExecutor #开启线程池,更快的爬取数据
import time
import os
def work(k):
response=requests.get(url='https://www.autohome.com.cn/all/{}/#liststart'.format(k)) response.encoding="GBK"
soup_obj=BeautifulSoup(response.text,'html.parser')
div_obj=soup_obj.find(name='div',attrs={"id":"auto-channel-lazyload-article"})
li_list=div_obj.find_all(name='li')
for i in li_list:
no_obj=i.find(name='h3')
if not no_obj:continue title=i.find(name='h3').text
summary=i.find(name='p').text
a='https'+i.find(name='a').get('href')
img='https'+i.find(name='img').get('src')
tags=a.split('/',)[]
# print(response.url,title,tags)
print(title,summary,a,img,tags)
#下面是个models里边表名
info_obj=models.infodata(title=title,summary=summary,a=a,img=img,tags=tags)
#下面是保存数据 到数据库
info_obj.save() def spider():
"""爬取汽车之家"""
t=ThreadPoolExecutor()
for k in range(,):
t.submit(work,k)
t.shutdown()
# response=requests.get(url='https://www.autohome.com.cn/all/6836/#liststart')
# print(response.headers) #头文件
# print(response.encoding) #编码
# print(response.status_code) #状态码
# print(response.text) #html文件
if __name__ == '__main__':
#manage.py里边的内容,要对应起来
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myes007.settings")
#写下面的两行代码
import django
django.setup()
#导入models
from web01 import models t1=time.time()
spider()
print(time.time()-t1)
2.自定义models.py模块
from django.db import models # Create your models here.
# title summary a_url img_url tags
class infodata(models.Model):
title=models.CharField(verbose_name="标题",max_length=)
summary=models.CharField(verbose_name="摘要",max_length=)
a=models.CharField(verbose_name="文章链接",max_length=)
img=models.CharField(verbose_name="图片链接",max_length=)
tags=models.CharField(verbose_name="标签",max_length=)
写完上边的内容,需要在Terminal窗体中执行命令
python manage.py makemigrations #保存models.py的变更记录
python manage.py migrate #把变更记录同步到数据库中
3.前后端设计&&配置文件.
ELK之开心小爬爬的更多相关文章
- ELK 安装部署小计
ELK的安装部署已经是第N次了! 其实也很简单,这里记下来,以免忘记. #elasticsearch安装部署 wget https://artifacts.elastic.co/downloads/e ...
- 小爬爬5:scrapy介绍3持久化存储
一.两种持久化存储的方式 1.基于终端指令的吃持久化存储: 特点:终端指令的持久化存储,只可以将parse方法的返回值存储到磁盘文件 因此我们需要将上一篇文章中的author和content作为返回值 ...
- 小爬爬4:12306自动登录&&pyppeteer基本使用
超级鹰(更简单的操作验证) - 超级鹰 - 注册:普通用户 - 登陆: - 创建一个软件(id) - 下载示例代码 1.12306自动登录 # Author: studybrother sun fro ...
- 小爬爬5:scrapy介绍2
1.scrapy:爬虫框架 -框架:集成了很多功能且具有很强通用性的一个项目模板 -如何学习框架:(重点:知道有哪些模块,会用就行) -学习框架的功能模板的具体使用. 功能:(1)异步爬取(自带buf ...
- 小爬爬7:回顾&&crawlSpider
1.回顾昨日内容 回顾 - 全站数据爬取(分页) - 手动请求的发送Request(url,callback) - post请求和cookie处理 - start_requests(self) - F ...
- 小爬爬6: 网易新闻scrapy+selenium的爬取
1.https://news.163.com/ 国内国际,军事航空,无人机都是动态加载的,先不管其他我们最后再搞中间件 2. 我们可以查看到"国内"等板块的位置 新建一个项目,创建 ...
- 小爬爬6.scrapy回顾和手动请求发送
1.数据结构回顾 #栈def push(self,item) def pop(self) #队列 def enqueue(self,item) def dequeue(self) #列表 def ad ...
- 小爬爬5:重点回顾&&移动端数据爬取1
1. ()什么是selenium - 基于浏览器自动化的一个模块 ()在爬虫中为什么使用selenium及其和爬虫之间的关联 - 可以便捷的获取动态加载的数据 - 实现模拟登陆 ()列举常见的sele ...
- 小爬爬4:selenium操作
1.selenium是什么? selenium: - 概念:是一个基于浏览器自动化的模块. - 和爬虫之间的关联? - 帮我我们便捷的爬取到页面中动态加载出来的数据 - 实现模拟登陆 - 基本使用流程 ...
随机推荐
- spring源码学习之bean的加载(三)
接着二中的继续写,那个都超过1000行了,哈,需要重新写一个,要不太长了,我都看不下去了 7.4 初始化bean doCreateBean函数中有这样一行代码:这行代码中initializeBean函 ...
- 【python之路33】开发模式单例模式及简单的服务器请求框架原理
1.单例模式指的是创建单个实例,例如:数据库连接池中包含10个数据库连接,用户访问数据时随机从连接池中拿出一个进行连接,其他用户再次访问时不再创建对象进行连接 #!usr/bin/env python ...
- Django项目:CRM(客户关系管理系统)--25--17PerfectCRM实现King_admin单列排序
登陆密码设置参考 http://www.cnblogs.com/ujq3/p/8553784.html {#table_data_list.html#} {## ————————08PerfectCR ...
- npm常用命令及版本号
npm 包管理器的常用命令 测试环境为node>=8.1.3&&npm>=5.0.3 1, 首先是安装命令 //全局安装 npm install 模块名 -g //本地安装 ...
- os模块和sys模块
1.os模块与path有关:os.path.isfile():判断置顶对象是否为文件,是返回True,否返回Falseos.path.isdir():判断指定对象是否为目录,是返回True,否返回Fa ...
- 模板方法(Template Method)(父类声明算法骨架,子类具体不同实现)
在阎宏博士的<JAVA与模式>一书中开头是这样描述模板方法(Template Method)模式的: 模板方法模式是类的行为模式.准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式 ...
- java-多线程的练习----妖,等待唤醒,代码重构,lock到condition
1 需求 资源有姓名和性别. 两个线程, 一个负责给姓名和性别赋值, 一个负责获取姓名和性别的值. 要求1,运行一下,解决程序的 "妖"的问题. 要求2,实现正确数据的 ...
- GYM 101350 F. Monkeying Around
F. Monkeying Around time limit per test 2.0 s memory limit per test 256 MB input standard input outp ...
- 洛谷P1573 栈的操作 [2017年6月计划 数论11]
P1573 栈的操作 题目描述 现在有四个栈,其中前三个为空,第四个栈从栈顶到栈底分别为1,2,3,…,n.每一个栈只支持一种操作:弹出并 压入.它指的是把其中一个栈A的栈顶元素x弹出,并马上压入任意 ...
- SQL SERVER 自增列的方法
declare @Table_name varchar(60) set @Table_name = ''; if Exists(Select top 1 1 from sysobjects ...