Python爬虫(十三)——Scrapy爬取豆瓣图书
这次我们爬取豆瓣图书的top250的目录后进入书籍界面爬取界面中的书籍标签。
步骤
建立项目和Spider模板
使用以下命令
scrapy startproject demo
cd demo
scrapy genspider book
编写Spider
我们首先在top250的界面中爬取到每本书籍的url。打开网页观察代码:
经过观察,我们发现书籍的信息在标签tr属性为item的代码块中,而书籍的url则是在标签a中。利用yield将这个请求的结果返回:
def parse(self, response):
soup = BeautifulSoup(response.text, 'html.parser')
for item in soup.find_all('tr', attrs={'class': 'item'}):
for href in item.find_all('a'):
if href.string != None:
url = href.attrs['href']
yield scrapy.Request(url, callback=self.parse_book)
然后打开书籍信息界面的源代码搜索tag找到了书籍标签的所在位置