前言
网络爬虫程序的核心任务就是获取网络上的数据,并对特定的数据做一些处理。因此,如何“采集 ”所需的数据往往成为爬虫成功与否的重点。数据采集最常见的任务就是从网页中抽取数据,一般所说的“抓取”就是指这个动作。抓取工具有:正则表达式(即python的正则表达式库——re模块)、Xpath、BeautifulSoup模块及lxml模块。
本文采取BeautifulSoup模块来进行抓取定位。
任务
从豆瓣读书网站爬取小说标签下的书名、作者、评分信息。
一、导入相关包
import requests
from bs4 import BeautifulSoup
import csv #文件写入需要
二、爬取第一页的内容
首先我们先尝试爬取第一页的数据,url=‘https://book.douban.com/tag/%E5%B0%8F%E8%AF%B4?start=0&type=T’
##要抓取的数据的网址
url = 'https://book.douban.com/tag/%E5%B0%8F%E8%AF%B4?start=0&type=T'
#发出请求,得到一个resp响应,(需要去抓取工具那查看一下地址栏里的链接是不是get方式提交)
page_text = requests.get(url=url, headers={
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36'})
#解析数据
#1、把页面源代码交给BeautifulSoup进行处理,生成bs对象
soup = BeautifulSoup(page_text.text, "html.parser") #指定html解析器
#2、从bs对象中查找定位我们需要的数据(书名、作者、评分),用以下两个函数,这里需要对html文档的标签有所了解
#html的语法 : <标签 属性="属性值"> 被标记的内容 </标签>
# find(标签,属性=值)
# find_all(标签,属性=值)
title = soup.find_all("h2") #这里表示我们要抓取的文章名称是属于标签<h2>的
autor = soup.fin