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之开心小爬爬的更多相关文章

  1. ELK 安装部署小计

    ELK的安装部署已经是第N次了! 其实也很简单,这里记下来,以免忘记. #elasticsearch安装部署 wget https://artifacts.elastic.co/downloads/e ...

  2. 小爬爬5:scrapy介绍3持久化存储

    一.两种持久化存储的方式 1.基于终端指令的吃持久化存储: 特点:终端指令的持久化存储,只可以将parse方法的返回值存储到磁盘文件 因此我们需要将上一篇文章中的author和content作为返回值 ...

  3. 小爬爬4:12306自动登录&&pyppeteer基本使用

    超级鹰(更简单的操作验证) - 超级鹰 - 注册:普通用户 - 登陆: - 创建一个软件(id) - 下载示例代码 1.12306自动登录 # Author: studybrother sun fro ...

  4. 小爬爬5:scrapy介绍2

    1.scrapy:爬虫框架 -框架:集成了很多功能且具有很强通用性的一个项目模板 -如何学习框架:(重点:知道有哪些模块,会用就行) -学习框架的功能模板的具体使用. 功能:(1)异步爬取(自带buf ...

  5. 小爬爬7:回顾&&crawlSpider

    1.回顾昨日内容 回顾 - 全站数据爬取(分页) - 手动请求的发送Request(url,callback) - post请求和cookie处理 - start_requests(self) - F ...

  6. 小爬爬6: 网易新闻scrapy+selenium的爬取

    1.https://news.163.com/ 国内国际,军事航空,无人机都是动态加载的,先不管其他我们最后再搞中间件 2. 我们可以查看到"国内"等板块的位置 新建一个项目,创建 ...

  7. 小爬爬6.scrapy回顾和手动请求发送

    1.数据结构回顾 #栈def push(self,item) def pop(self) #队列 def enqueue(self,item) def dequeue(self) #列表 def ad ...

  8. 小爬爬5:重点回顾&&移动端数据爬取1

    1. ()什么是selenium - 基于浏览器自动化的一个模块 ()在爬虫中为什么使用selenium及其和爬虫之间的关联 - 可以便捷的获取动态加载的数据 - 实现模拟登陆 ()列举常见的sele ...

  9. 小爬爬4:selenium操作

    1.selenium是什么? selenium: - 概念:是一个基于浏览器自动化的模块. - 和爬虫之间的关联? - 帮我我们便捷的爬取到页面中动态加载出来的数据 - 实现模拟登陆 - 基本使用流程 ...

随机推荐

  1. Redis源码解析:23sentinel(四)故障转移流程

    十:故障转移流程中的状态转换 当哨兵针对某个主节点进行故障转移时,该主节点的故障转移状态master->failover_state,要依次经历下面六个状态: SENTINEL_FAILOVER ...

  2. Django项目:CRM(客户关系管理系统)--46--38PerfectCRM实现全局账号登录注销01

    python.exe manage.py startapp gbacc #urls.py """PerfectCRM URL Configuration The `url ...

  3. bzoj 3033 太鼓达人——欧拉图搜索

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3033 思路:肯定是把2^m个数当成点,每个点连了2条入边.2条出边,然后求一个经过所有点一次 ...

  4. 安装node/npm,通过express搭建node项目

    nodejs软件的下载地址:https://nodejs.org/en/ (推荐下载稳定版) 1.只要安装好了nodejs,就自动安装好了npm包. 2.在cmd中通过命令node -version查 ...

  5. Tomcat7 Redis Session共享

    1.环境 服务器 centos7 tomcat 7 redis nginx 2.配置tomcat配置文件context.xml <Valve className="com.orange ...

  6. 集训队日常训练20180513-DIV2

    A.2176 给一个字符串s,问距离为D的字母对是否存在相同. 模拟. #include<bits/stdc++.h> using namespace std; int main() { ...

  7. Codeforces 1150D(字符串dp)

    反思 三维的dp压根没看出来,看题解以后思路又很直观,找几道字符串dp练练才行 序列自动机和优化一维略 /* __ __ * ____| |_____| |____ * | | * | __ | * ...

  8. 模拟7题解 T1方程的解

    方程的解 [扩展欧几里德] 首先进行特判,两个小时基本想到了,除了a!=0,b==0,a*c<0这种情况 其次就是一般情况: 首先exgcd求出ax+by=GCD(a,b)的一组任意解 然后两边 ...

  9. Maven常用命令备忘

    1. 修改版本号 mvn versions:set -DnewVersion=1.0.1-SNAPSHOT 2. <relativePath>的默认值是../pom.xml,如果没有配置, ...

  10. 【JZOJ5086】【GDOI2017第四轮模拟day1】数列 折半搜索

    题面 有一个长度为n 的排列,现在有一些位置的数已经模糊不清了,你只知道这个排列的逆序对个数是K,你能计算出总共有多少可能的排列吗? 对于100% 的数据,n <=10^3,K<=10^9 ...