python爬取豆瓣书籍_python爬虫学习,爬取豆瓣各分类书单

点击蓝字“python教程”关注我们哟!

代码展示:pachon2.5.py

# -- coding: utf-8 --

import urllib

import urllib2

import re

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

class book: #豆瓣书籍的类

def init(self, types, page):

self.baseUrl = 'http://www.douban.com/tag/'

self.types = types

self.filename = 'doubanbook.txt'

self.page = pagedef getContents(self): #爬取源代码

try:

#if self.page == 0:

url = self.baseUrl + self.types + '/book'

#else:

# url = self.baseUrl + self.types + '/book?start=' + str(self.page)

user_agent = 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.65 Safari/537.36'

headers = { 'User-Agent' : user_agent}

request = urllib2.Request(url,headers = headers)

response = urllib2.urlopen(request)

content = response.read() #.decode('utf-8')

pattern = re.compile('(.*?).*?>(.*?)

',re.S)

items = re.findall(pattern,content)

return items

except urllib2.URLError, e:

if hasattr(e, "reason"):

print u"豆瓣链接错误,错误原因", e.reason

return None

def writetext(self, items): #写入txt

for item in items:

print item[0],item[1]

files = open(self.filename,'a')

files.write(item[0])

files.write(item[1])

files.write('\n')

files.close()

def strat(self): #启动函数

self.writetext(self.getContents())

print u"""出现乱码为正常现象,在与本脚本相同的文件夹下会多出一个,

doubanbook.txt的文件里面有所爬书籍,如你把本脚本放在桌面,

文件便会出现在桌面"""

print u"结束输入 'O' , 联系作者输入 'A'"

end = raw_input('>')

if end == 'A':

print u"QQ邮箱:1021644861@qq.com"

raw_input('>')

else:

print "over"

初学python会比较困难,但是只要坚定自己的信念,不轻易认输,敢于面对,成功迟早会笑脸相迎。

注意事项

01

对Python开发技术感兴趣的同学,欢迎加下方的交流群一起学习,相互讨论。

02

学习python过程中有不懂的可以加入我的python零基础系统学习交流秋秋qun:934109170,与你分享Python企业当下人才需求及怎么从零基础学习Python,和学习什么内容。相关学习视频资料、开发工具都有分享

好啦!文章就给看官们分享到这儿

最后,如果觉得有帮助,记得关注、转发、收藏哟

好的,我可以给你讲解一下如何使用 Python 爬取豆瓣音乐信息。 首先需要安装相关的库,比如 requests、lxml 和 xpath。可以通过 pip install requests lxml 命令来安装。 接下来,通过 requests 库向豆瓣音乐的网页发送请求,并使用 lxml 库来解析网页内容。代码如下: ```python import requests from lxml import etree url = 'https://music.douban.com/top250' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} response = requests.get(url, headers=headers) html = response.text ``` 接下来,我们可以使用 lxml 库中的 etree 对象来解析 HTML 内容。这里我们使用 xpath 来获取我们需要的信息,比如歌曲名、演唱者和评分等。代码如下: ```python tree = etree.HTML(html) songs = tree.xpath('//tr[@class="item"]/td[2]/div/a/text()') # 歌曲名 singers = tree.xpath('//tr[@class="item"]/td[2]/div[@class="pl"]/text()') # 演唱者 ratings = tree.xpath('//tr[@class="item"]/td[2]/div[@class="star clearfix"]/span[@class="rating_num"]/text()') # 评分 ``` 最后,我们可以将获取到的信息输出或保存到文件中。完整代码如下: ```python import requests from lxml import etree url = 'https://music.douban.com/top250' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} response = requests.get(url, headers=headers) html = response.text tree = etree.HTML(html) songs = tree.xpath('//tr[@class="item"]/td[2]/div/a/text()') # 歌曲名 singers = tree.xpath('//tr[@class="item"]/td[2]/div[@class="pl"]/text()') # 演唱者 ratings = tree.xpath('//tr[@class="item"]/td[2]/div[@class="star clearfix"]/span[@class="rating_num"]/text()') # 评分 for i in range(len(songs)): print(f'{i+1}. {songs[i]} - {singers[i].strip()} - {ratings[i]}') ``` 这样就可以在控制台输出豆瓣音乐 top250 的信息了。如果想要将信息保存到文件中,可以使用 Python 的文件操作来实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值