【Python爬虫】用60行代码用python编译一个简易爬虫,爬取电影热评并将爬取的数据库写入一个txt文本当中,最后将数据写入mysql数据库当中

今天给大家分享一个python爬虫入门,用60行代码用python编译一个简易爬虫,这里以爬取肖申克的救赎这部电影的评论为例子,并将爬取的数据库写入一个txt文本当中,最后将数据写入mysql数据库的表当中

开发工具pycharm2020、mysql5.7(数据库)、Navicat Premium 15(数据库可视化工具)

开发环境python3.7.0

那么如何爬取评论前9页数据也就是180个评论,并将爬取的数据库写入一个txt文本当中,最后将其写入数据库呢?

直接上代码main.py

解析在代码中

第一个函数:写入数据库函数

addData(biao)

# 连接数据库,写入数据库函数
def addData(biao):
    #连接数据库,初始化
    con = pymysql.connect(host="localhost",user="root",password="",database="comment")
   
 try:
        cursor = con.cursor()
        #写入数据库操作
        cursor.execute("insert into biao1(biao)value(%s)",[biao])
        con.commit()
        cursor.close()

      #关闭数据库
 finally:
        con.close()


#这个用于第二个爬虫主函数中
findcomment = re.compile(r'<span class="short">(.*)</span>')  # 根据网页的源代码写一个正则表达式,对应评论的文本

第二个函数:爬虫主函数

GetTxt(start)
# 爬虫主函数
def GetTxt(start):

     #爬取的页面,因为第一到第九页,页面地址呈现一个规律递增的状态,所以在运行主函数调用爬虫主函数的时候,只要控制这个递增的参数,就能依次爬取前九页的数据
    #*表示因为涉及某些版权方网站这里就不写出来了
    url = '*/comments?start=' + \
             str(start) + '&limit=20&sort=time&status=P'
     
#这是一个应对反爬机制的一个最基本的方法,因为当你用一个机器爬取页面数据的时候,服务器会做一个反爬,所以我们就要模拟一个浏览器向服务器发送读取数据信息
    head = {  # 模拟浏览器头部信息,向服务器发送消息。Firefox浏览器头部信息如下:
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62"
    }
    request = urllib.request.Request(url, headers=head)
    response = urllib.request.urlopen(request)

     #爬取页面的数据位置
    html_data = response.read().decode('utf-8')
    commentlist = []
    soup = BeautifulSoup(html_data, 'html.parser')
    comment_div_lits = soup.find_all('div', class_='comment')

     #依次爬取信息
    for item in comment_div_lits:
        eachcomment = re.findall(findcomment, str(item))  # 如果不把item转换为str类型findall函数会报错
        #打印爬取信息到控制台
        print(eachcomment)
        #将信息添加到commentlist数组当中
        commentlist.append(eachcomment)

   #创建打开一个myfirst1.txt的文本文件
    f = open('myfirst1.txt', 'a', encoding='utf-8')
    #循环写入myfirst1.txt的文本文件中去
    for comment in commentlist:
        if comment != []:
            f.write(comment[0]+'\r\n') #打印至txt

    #关闭txt文本文件
    f.close()

    #调用写入数据库的函数,传入参数
    for biao in commentlist:
        if biao !=[]:
            addData(biao)

第三个函数:运行主函数

main()
# 主函数
def main():
    #传入找到的规律递增的参数
    for i in range(1, 181, 20):
        print(i)
        GetTxt(i)

    print("\n打印完成")

#运行主函数
if __name__ == '__main__':
    main()

运行结果图

完整的文件压缩包链接(免费食用)!

https://download.csdn.net/download/weixin_57177381/87336615

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浩冉学编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值