IR01豆瓣图书Top250数据爬取实验报告

实验目的:

本次试验目的为掌握基本的网站信息爬取技巧,主要是使用CSS selector和xpath来进行网页元素定位。

实验要求:

使用CSS selector和xpath爬取豆瓣图书250的关键信息

实验工具:

Centos2.7;Python3;xftp;xshell;scrapy 框架

实验分工:

本次作业由小组成员相互讨论,各自进行独立实验并相互交流问题;最后由胡云撰写实验报告。

实验过程:

1.进入Linux操作系统

2.输入scrapy shell 'https://book.douban.com/top250?icn=index-book250-all'

3.输入代码开始爬取

具体代码如下:

爬取代码:

CSS:

for book in response.css("div.indent table"):

            pic=book.css("td a img::attr(src)").extract()

            title=book.css("div.pl2 a::text").extract()

            author=book.css("p.pl::text").extract()

            title2=book.css("div.pl2 span::text").extract()

            score=book.css("div>span.rating_nums::text").extract()

            comm_num=book.css("div>span.pl::text").extract()

            quote=book.css("td p.quote span.inq::text").extract()

            print('书名:',title),

            if title2:

                print('别名:',title2)

            print('图片:',pic),

            print('作者及其他信息:',author),

            print('评分:',score),

            print('评价人数:',comm_num),

            print('名言:',quote)

XPath:

for i in response.xpath('//div[@class="indent"]/table'):

            item = HomeworkItem()

            item['image'] = i.xpath('.//img/@src').extract_first()

            item['title'] = i.xpath('.//div[@class="pl2"]/a/text()').extract_first().strip()

            item['E_title'] = i.xpath('.//div[@class="pl2"]/span/text()').extract()

            item['publish'] = i.xpath('.//p[@class="pl"]/text()').extract()

            item['score'] = i.xpath('.//div[@class="star clearfix"]/span[@class="rating_nums"]/text()').extract()

            item['commentnum'] = i.xpath('.//div[@class="star clearfix"]/span[@class="pl"]/text()').extract_first().strip('()\n ')

            item['quote'] = i.xpath('.//p[@class="quote"]/span/text()').extract()

            yield item

爬取过程中遇到的问题:

1.爬取过程中遇到403forbidden,被禁止爬取

解决方法:将USER_AGENT改为:USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'

2.爬取的内容格式不对,无法很好地完成for循环问题

原因在于缩进格式不对,改了之后就达成目标

爬取结果截图:


导出为json文件格式截图:


你可能感兴趣的:(IR01豆瓣图书Top250数据爬取实验报告)