热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python3简单爬虫并存入mysql数据库

python3简单爬虫并存入mysql数据库网络爬虫是一种高效的信息采集器,利用它可以快速、准确地采集我们想要的各种的数据资源。因此,可以说,网络爬虫技术几乎已成为大数据时代IT从

python3简单爬虫并存入mysql数据库

网络爬虫是一种高效的信息采集器,利用它可以快速、准确地采集我们想要的各种的数据资源。因此,可以说,网络爬虫技术几乎已成为大数据时代IT从业时代的必修课程。

爬取当当网商品数据(图片,价格,作者)

(1)导入包

import requests
from bs4 import BeautifulSoup

beautifulsoup是python的一个HTML解析库,可以用它来方便地从网页中提取数据。

(2)发送请求并打印状态码

#添加请求头 修改user-agent来伪装浏览器
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'}
url = 'http://category.dangdang.com/cp01.19.34.00.00.00.html'
res = requests.get(url,headers=headers)
print(res.status_code)

添加headers伪装浏览器

(3)分析网页发现商品在

  • 标签中

    《python3简单爬虫并存入mysql数据库》

     通过beautifulsoup查找到所有的商品

    找到class为bigimg的

      标签

      data = soup.find_all('ul', attrs={'class': 'bigimg'})

      (4)通过正则表达式取出需要的数据

      pertern = re.compile(
      r'(.*?).*?.*?',
      re.S)

      生成正则模式

      data = str(data)
      item = re.findall(pertern, data)

      对data进行强制类型转换(转为字符串)

      匹配出数据

      《python3简单爬虫并存入mysql数据库》

       (5)存入数据库

      def create():
      db = pymysql.connect("localhost", "root", "root", "TESTDB")#连接数据库
      cursor = db.cursor()
      cursor.execute("DROP TABLE IF EXISTS EMPLOYER")
      sql = """CREATE TABLE EMPLOYER (
      ID INT PRIMARY KEY AUTO_INCREMENT,
      LOGO CHAR(255),
      PRICE CHAR(20),
      AUTHER CHAR(255) )"""
      cursor.execute(sql)
      db.close()
      def insert(value):
      db = pymysql.connect("localhost", "root", "root", "TESTDB")
      cursor = db.cursor()
      sql = "INSERT INTO polls_EXPLOYER(LOGO,PRICE,AUTHER) VALUES (%s, %s, %s)"
      try:
      cursor.execute(sql,value)
      db.commit()
      print('插入数据成功')
      except:
      db.rollback()
      print("插入数据失败")
      db.close()

      首先创建表,如果存在相同名字的表,则删除;再创建表。

      插入数据。

      《python3简单爬虫并存入mysql数据库》

      (6)源码

      #-*- coding:utf-8 -*-
      # author:Air
      # software: PyCharm
      #学习交流qq群:916696436
      import requests
      from bs4 import BeautifulSoup
      import re
      import pymysql
      def create():
      db = pymysql.connect("localhost", "root", "root", "TESTDB")#连接数据库
      cursor = db.cursor()
      cursor.execute("DROP TABLE IF EXISTS EMPLOYER")
      sql = """CREATE TABLE EMPLOYER (
      ID INT PRIMARY KEY AUTO_INCREMENT,
      LOGO CHAR(255),
      PRICE CHAR(20),
      AUTHER CHAR(255) )"""
      cursor.execute(sql)
      db.close()
      def insert(value):
      db = pymysql.connect("localhost", "root", "root", "TESTDB")
      cursor = db.cursor()
      sql = "INSERT INTO EMPLOYER(LOGO,PRICE,AUTHER) VALUES (%s, %s, %s)"
      try:
      cursor.execute(sql,value)
      db.commit()
      print('插入数据成功')
      except:
      db.rollback()
      print("插入数据失败")
      db.close()
      create() #创建表
      #re匹配需要的数据
      pertern = re.compile(
      r'(.*?).*?.*?',
      re.S)
      #添加请求头 修改user-agent来伪装浏览器
      headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'}
      url = 'http://category.dangdang.com/cp01.19.34.00.00.00.html'
      res = requests.get(url,headers=headers)
      print(res.status_code)
      soup = BeautifulSoup(res.text, 'html.parser')
      data = soup.find_all('ul', attrs={'class': 'bigimg'})
      data = str(data)
      item = re.findall(pertern, data)
      for i in item:
      print(i)
      insert(i)

       


  • 推荐阅读
    • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
      本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
    • 如何实现织梦DedeCms全站伪静态
      本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
    • Python爬取豆瓣数据实现过程解析
      这篇文章主要介绍了Python爬取豆瓣数据实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值, ... [详细]
    • 文章目录简介HTTP请求过程HTTP状态码含义HTTP头部信息Cookie状态管理HTTP请求方式简介HTTP协议(超文本传输协议)是用于从WWW服务 ... [详细]
    • 最近在学Python,看了不少资料、视频,对爬虫比较感兴趣,爬过了网页文字、图片、视频。文字就不说了直接从网页上去根据标签分离出来就好了。图片和视频则需要在获取到相应的链接之后取做下载。以下是图片和视 ... [详细]
    • 目录爬虫06scrapy框架1.scrapy概述安装2.基本使用3.全栈数据的爬取4.五大核心组件对象5.适当提升scrapy爬取数据的效率6.请求传参爬虫06scrapy框架1. ... [详细]
    • 微软头条实习生分享深度学习自学指南
      本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
    • Python正则表达式学习记录及常用方法
      本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
    • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
    • Python瓦片图下载、合并、绘图、标记的代码示例
      本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
    • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
    • Python爬虫中使用正则表达式的方法和注意事项
      本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
    • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了常用#免费%代理IP库&整理*收藏——实时@更新(大概)相关的知识,希望对你有一定的参考价值。 ... [详细]
    • 学习一门编程语言,除了语法,最重要的是学习解决问题。很多时候单凭自己的能力确实无法做到完美解决,所以无论是搜索引擎、社区、文档还是博客&# ... [详细]
    • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
    author-avatar
    waiwaiwai
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有