python爬虫运行一遍后再运行不成功_我这个爬虫代码一直运行不成功,然后也不知道怎么解决,七月如果看到了,麻烦帮帮我...

该博客介绍了一个Python爬虫程序,用于抓取豆瓣网音乐人的专辑名称和喜欢人数。程序通过`urllib.request`获取网页内容,使用正则表达式解析HTML,提取所需信息并进行排序展示。在运行过程中遇到问题,博主寻求帮助解决连续运行失败的状况。
摘要由CSDN通过智能技术生成

#!/usr/bin/python

# -*- coding: utf-8 -*-

from urllib import request

import re

# 获取豆瓣网音乐人的专辑名称和喜欢的人数

class Spider():

url = 'https://music.douban.com/artists/genre_page/6/'

root_pattern = '

([\s\S]*?)
'

name_pattern = '([\s\S]*?)'

number_pattern = '

([\s\S]*?)
'

#获取源文档

def __content(self):

r = request.urlopen(Spider.url)

htmls = r.read()

htmls = str(htmls, encoding='utf-8')

return htmls

#对源文档进行提炼,提取专辑名和喜欢的人数

def __analysys(self, htmls):

root_html = re.findall(Spider.root_pattern, htmls)

anchors = []

for html in root_html:

name = re.findall(Spider.name_pattern, html)

number = re.findall(Spider.number_pattern, html)

anchor = {'name': name, 'number': number}

anchors.append(anchor)

print(anchors)

def __refind(self,anchors):

l = lambda anchor: {

'name': anchors['name'][0].strip(),

'number': anchors['number'][0]

}

return map(l, anchors)

def __sort_anchors(self, anchors):

anchors = sorted(anchors, key=self.__sort_seed, reverse=True)

return anchors

def __sort_seed(self, anchor):

r = re.findall('\d*', anchor['number'])

number = float(r[0])

if '万' in anchor['number']:

number *= 10000

else:

return number

def __show(self, anchors):

# 打印编号

for rank in range(0, len(anchors)):

print ('rank' + str(rank + 1)

+ ':' + anchors[rank]['name']

# 取anchors列表下第x元素的name和number

+ '...' + anchors[rank]['number'])

def go(self):

htmls = self.__content()

anchors = self.__analysys(htmls)

anchors = list(self.__refind(anchors))

anchors = self.__sort_anchors(anchors)

self.__show(anchors)

#调用

spider = Spider()

spider.go()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值