先放上url,https://music.douban.com/chart

这是豆瓣的一个音乐排行榜,这里爬取了左边部分的歌曲排行榜部分,爬虫很简单,就用到了beautifulsoup和requests这两个库,爬取后分吧把内容存储到txt,csv和数据库

0x01:存储到txt

import requests
from bs4 import BeautifulSoup
url = 'https://music.douban.com/chart'
html = requests.get(url=url).text
soup = BeautifulSoup(html, 'lxml')
ul = soup.find(attrs={'class': 'col5'}) # 找到存放排行榜音乐的ul标签
lis = ul.find_all(name='li') # 获取每一首音乐对应的标签
for li in lis:
paiming = li.find(name='span').string
name = li.find(name='a', attrs={'href': 'javascript:;'}).string
a = li.find(name='a', attrs={'class': 'face'}) # 获取存存放连接的a标签,再在a标签里获取连接
if a != None:
img = a.find(name='img') # 获取连接的img标签
lianjie = img.attrs['src'] # 获取到连接,下面进行一个判断,前十首歌曲有链接,后十首没有
else:
lianjie = '没有链接'
print(paiming, name, lianjie) with open('dou_bai_music.txt', 'a', encoding='utf-8') as f:
f.write(paiming+'\t'+name+'\t'+lianjie+'\n')
f.close()

0x02:存储到csv

import requests
from bs4 import BeautifulSoup
import csv
url = 'https://music.douban.com/chart'
html = requests.get(url=url).text
soup = BeautifulSoup(html, 'lxml')
ul = soup.find(attrs={'class': 'col5'}) # 找到存放排行榜音乐的ul标签
lis = ul.find_all(name='li') # 获取每一首音乐对应的标签
with open('doubai.csv', 'a', newline='', encoding='utf-8') as f:    # 打开文件,写入表头
write = csv.writer(f)
write.writerow(['排名', '歌名', '链接'])
for li in lis:
paiming = li.find(name='span').string
name = li.find(name='a', attrs={'href': 'javascript:;'}).string
a = li.find(name='a', attrs={'class': 'face'}) # 获取存存放连接的a标签,再在a标签里获取连接
if a != None:
img = a.find(name='img') # 获取连接的img标签
lianjie = img.attrs['src'] # 获取到连接
else:
lianjie = '没有链接'
print(paiming, name, lianjie)
with open('doubai.csv', 'a', newline='', encoding='utf-8') as f:  # 打开文件,存储爬取内容
write = csv.writer(f)
write.writerow([paiming, name, lianjie])

0x03:存储到数据库

import requests
from bs4 import BeautifulSoup
import pymysql
url = 'https://music.douban.com/chart'
html = requests.get(url=url).text
soup = BeautifulSoup(html, 'lxml')
ul = soup.find(attrs={'class': 'col5'}) # 找到存放排行榜音乐的ul标签
lis = ul.find_all(name='li') # 获取每一首音乐对应的标签
db = pymysql.connect(host='localhost', user='root', password='root', port=3306, db='spiders')  # 连接数据库
cursor = db.cursor()
print('数据库连接成功')
sql = 'CREATE TABLE IF NOT EXISTS music (paiming INT NOT NULL, name VARCHAR(255) NOT NULL, lianjie VARCHAR(255) NOT NULL, PRIMARY KEY (paiming))'  # 创建数据表,指定字段
cursor.execute(sql)
print('数据表创建完成!')
for li in lis:
paiming = li.find(name='span').string
name = li.find(name='a', attrs={'href': 'javascript:;'}).string
a = li.find(name='a', attrs={'class': 'face'}) # 获取存存放连接的a标签,再在a标签里获取连接
if a != None:
img = a.find(name='img') # 获取连接的img标签
lianjie = img.attrs['src'] # 获取到连接
else:
lianjie = '没有链接'
print(paiming, name, lianjie)
sql = 'INSERT INTO music(paiming, name, lianjie) values(%s, %s, %s)'    # 插入数据,判断是否插入成功
try:
cursor.execute(sql, (paiming, name, lianjie))
db.commit()
print('数据插入完成!!')
except:
print('插入失败')
db.rollback()
db.close()      # 关闭数据库

*******************************不积跬步,无以至里。******************************

简单python爬虫实例的更多相关文章

  1. Python 利用Python编写简单网络爬虫实例3

    利用Python编写简单网络爬虫实例3 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站“http://bbs.51testing. ...

  2. Python 利用Python编写简单网络爬虫实例2

    利用Python编写简单网络爬虫实例2 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站“http://www.51testing. ...

  3. Python爬虫实例:爬取猫眼电影——破解字体反爬

    字体反爬 字体反爬也就是自定义字体反爬,通过调用自定义的字体文件来渲染网页中的文字,而网页中的文字不再是文字,而是相应的字体编码,通过复制或者简单的采集是无法采集到编码后的文字内容的. 现在貌似不少网 ...

  4. Python爬虫实例:爬取豆瓣Top250

    入门第一个爬虫一般都是爬这个,实在是太简单.用了 requests 和 bs4 库. 1.检查网页元素,提取所需要的信息并保存.这个用 bs4 就可以,前面的文章中已经有详细的用法阐述. 2.找到下一 ...

  5. Python爬虫实例:爬取B站《工作细胞》短评——异步加载信息的爬取

    很多网页的信息都是通过异步加载的,本文就举例讨论下此类网页的抓取. <工作细胞>最近比较火,bilibili 上目前的短评已经有17000多条. 先看分析下页面 右边 li 标签中的就是短 ...

  6. 简单scrapy爬虫实例

    简单scrapy爬虫实例 流程分析 抓取内容:网站课程 页面:https://edu.hellobi.com 数据:课程名.课程链接及学习人数 观察页面url变化规律以及页面源代码帮助我们获取所有数据 ...

  7. python爬虫系列(1)——一个简单的爬虫实例

    本文主要实现一个简单的爬虫,目的是从一个百度贴吧页面下载图片. 1. 概述 本文主要实现一个简单的爬虫,目的是从一个百度贴吧页面下载图片.下载图片的步骤如下: 获取网页html文本内容:分析html中 ...

  8. Python 爬虫实例

    下面是我写的一个简单爬虫实例 1.定义函数读取html网页的源代码 2.从源代码通过正则表达式挑选出自己需要获取的内容 3.序列中的htm依次写到d盘 #!/usr/bin/python import ...

  9. Python爬虫实例:糗百

    看了下python爬虫用法,正则匹配过滤对应字段,这里进行最强外功:copy大法实践 一开始是直接从参考链接复制粘贴的,发现由于糗百改版导致失败,这里对新版html分析后进行了简单改进,把整理过程记录 ...

随机推荐

  1. [译][ABP vNext]ABP CLI,v0.18版本的新模板和其他功能

    ABP CLI,v0.18版本的新模板和其他功能 ABP v0.18已发布, 包含解决的70+个issue,500+次提交 网站更改 abp.io网站完全更新以突出ABP框架的目标和重要功能.文档和博 ...

  2. Chrome保存整个网页为图片

    打开需要保存为图片的网页 然后按F12,接着按Ctrl+Shift+P 在红框内输入full 点击下面的“Capture full size screenshot”就可以保存整个网页为图片了 原文出处 ...

  3. k8s web终端连接工具

    k8 web terminal 一个k8s web终端连接工具,在前后端分离或未分离项目中心中,也可以把此项目无缝集成,开箱即用. 项目地址:https://github.com/jcops/k8-w ...

  4. 记录一个 C# 导出 Excel 的坑

    Ø  简介 其实该文章并没有什么技术含量,只是记录下个人心得.在以后有朋友遇到类似问题,可以借鉴下,或者遇到相同问题时的提供个参考方向. 也算我的一个经历吧,这个问题我花了足足一天多的时间才找到问题, ...

  5. css隐藏页面元素的方法

    用css隐藏页面元素有许多种方法. 第一种方法[opacity: 0;] opacity属性通常用于设置一个元素的透明度,从另一个角度来看,如果透明度为0,也就从视觉上隐藏了该元素. 这个属性不是为改 ...

  6. iframe嵌套页面中的跳转

    简单说一下场景. 假设有A.B.C和D四个JSP页面,D通过iframe嵌套在C中,C通过iframe嵌套在B中,B通过iframe嵌套在A中. 然后现在在D中编写JavaScript代码跳转页面. ...

  7. Window权限维持(八):时间服务器

    Windows操作系统正在利用时间提供者体系结构,以便从网络中的其他网络设备或客户端获取准确的时间戳.时间提供者以DLL文件的形式实现,该文件位于System32文件夹中.Windows启动期间将启动 ...

  8. LeetCode 1292. Maximum Side Length of a Square with Sum Less than or Equal to Threshold

    题目 我是按照边进行二分的 class Solution { public: int sum[100005]; int a[305][305]; int maxSideLength(vector< ...

  9. JavaScript定时器越走越快的问题

    目录 JavaScript定时器越走越快的问题 (setinterval)多次初始化 清除(clearInterval)的失效 解决方法 JavaScript定时器越走越快的问题 之前在项目中写了定时 ...

  10. 禁用,移除 WPF window窗体系统操作SystemMenu

    public static class SystemMenuManager { [DllImport("user32.dll", EntryPoint = "GetSys ...