Python 爬虫学习

小白学习笔记,欢迎大神指教

import pymysql
import requests
from bs4 import BeautifulSoup
import time
import sys
#-----------------------------将爬取的数据封装---begin-------------------------
num = 0  # 定义条数的初始值
# 通过循环实现对不同页码的网页的数据爬取
for page in range(1):  # 以1页为例
    time.sleep(1)  # 延时1秒
    value = page * 10  # 考虑到start=后边的都是20的整倍数
    # 定义一个变量url,为需要爬取数据我网页网址(要将url由'https://movie.douban.com/subject/26683723/comments?status=P'换成'https://movie.douban.com/subject/26683723/comments?start=0&limit=20&sort=new_score&status=P&percent_type=')
    # 利用Python中字符串替换的方法:在要替换的地方用%s代替,在语句后%+要替换的内容
    url = 'https://music.douban.com/chart' #% str(page)  # str转型
    # 获取这个网页的源代码,存放在req中,{}中为不同浏览器的不同User-Agent属性,针对不同浏览器可以自行百度
    req = requests.get(url, {'User-Agent': 'Mozilla/5.0(Macintosh;IntelMacOSX10_7_0)AppleWebKit/535.11(KHTML,likeGecko)Chrome/17.0.963.56Safari/535.11'})
    print(req.status_code)
    # 获得系统的编码
    type = sys.getfilesystemencoding()
    # 设置爬出内容的编码
    req.encoding = type
    # 生成一个Beautifulsoup对象,用以后边的查找工作
    soup = BeautifulSoup(req.text, 'html.parser')
    # 找到所有p标签中的内容并存放在xml这样一个类似于数组队列的对象中
    xml = soup.find_all('a')
    # 利用循环将xml[]中存放的每一条打印出来
    dataList = list()
    for i in range(len(xml)):  # 表示从0到xml的len()长度
        msg = xml[i].string
        if not msg is None:
            num += 1
            dataList.append(msg)
#-----------------------------将爬取的数据封装---end-------------------------
#-----------------------------将封装的数据存入到数据库---begin---------------

# 打开数据库连接
db = pymysql.connect("localhost", "root", "123456", "pythondb")

# 使用cursor()方法获取操作游标
cursor = db.cursor()

try:
    # 遍历list集合
    for i in dataList:
        print("序号:%s   值:%s" % (dataList.index(i) + 1, i))
        # SQL 插入语句
        sql = 'INSERT INTO test (content) VALUES ("'+i+'")'
        # 执行sql语句
        cursor.execute(sql)
        # 提交到数据库执行
        db.commit()
except:
    # 如果发生错误则回滚
    db.rollback()

# 关闭数据库连接
db.close()
#-----------------------------将封装的数据存入到数据库---end---------------

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值