开往未来的列车|Python爬虫快速入门,静态网页爬取( 四 )
items = soup.select('div.item a')for item in items:name = item.textlink = item['href']print(name, link)可以看到 , 我们一次性就将所有符合条件的a元素找了出来 , 同样的功能 , 代码变得更加简洁了 。
三、单个网页爬取学习到这里 , 现在你应该可以独自完成爬取豆瓣图书的任务了 , 豆瓣图书Top250地址: 。
接下来我会给出具体的思路 , 不过建议你先尝试独立完成这个任务 。
首先 , 此前我们已经提到过 , 豆瓣是禁止反爬虫的 , 我们通过修改User-Agent伪装成浏览器成功“骗过”了豆瓣的识别:
import requestsfrom bs4 import BeautifulSoupheaders = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36'}re = requests.get('', headers=headers)soup = BeautifulSoup(re.text, 'html.parser')接下来 , 我们需要利用CSS选择器将我们所需要的数据存储在items变量中 , 但是 , 如何找到图书名称所在的标签呢?
其实很简单 , 我们先打开 , 右键单击红楼梦>检查 , 如下图所示:
不难看出 , 书名是a标签内属性title的值 , 且这个a标签位于class=“pl2”的div标签内 。
在知道了书名的“坐标”后 , 我们就可以使用CSS选择器啦:
items = soup.select('div.pl2 a')1此时items变量实际上是一个由Tag对象组成的列表 , 我们可以通过循环打印书名和对应的链接:
for item in items:name = item['title']link = item['href']print(name, link)1234完整的代码如下:
import requestsfrom bs4 import BeautifulSoupheaders = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36'}re = requests.get('', headers=headers)soup = BeautifulSoup(re.text, 'html.parser')items = soup.select('div.pl2 a')for item in items:name = item['title']link = item['href']print(name, link)1234567891011121314爬取到的结果:
红楼梦 活着 1984 百年孤独 飘 三体全集 三国演义(全二册) 白夜行 房思琪的初恋乐园 福尔摩斯探案全集(上中下) 动物农场 小王子 天龙八部 撒哈拉的故事 安徒生童话故事集 哈利?波特 人类简史 沉默的大多数 围城 平凡的世界(全三部) 杀死一只知更鸟 局外人 明朝那些事儿(1-9) 霍乱时期的爱情 笑傲江湖(全四册) 12345678910111213141516171819202122232425仔细观察不难发现 , 上述所说的a标签内的文本内容只有书名 , 因此除了使用item[‘title’]外 , 我们还可以使用item.text:
for item in items:name = item.textlink = item['href']print(name, link)1234输出结果(结果太长这里仅展示前面的一部分):
红楼梦活着1984百年孤独1234567891011121314151617181920为什么使用item.text就会出现一些奇怪的换行呢?
我们知道 , item.text是获取标签内的所有文本内容 , 空格 , 换行符等都会获取 , 我们再来看一下之前的a标签:
显然a标签里存在空格和换行符 , 因此如果想使用item.text输出结果 , 我们必须使用join()方法去掉这些多余的空格和换行符:
- 金屋房市|未来房价会降多少?可能会跌到刚需兜里有多少钱的地步!你信吗?
- 韦少|未来到底是谁的?韦少哈登太难了,8年过去了詹姆斯怎么还这么强
- 新民晚报|注意了!未来两个双休日3号线这个区段将暂停运营
- 中国新闻网|服贸会商机:“网课”会成为教育行业的未来吗?
- 探索未来|40+女人穿玄色显老?是你不会搭配!看50岁富冈佳子这么穿多美
- 第一财经|免税概念利好消息频出,机构看好板块未来强劲增长丨牛熊眼
- 落叶知秋|中芯国际将被美国拉黑,鸿蒙系统已有进展,未来科技方向在何方?
- 开往未来的列车|3亿人曾用过,最让人感到不舍的腾讯产品,如今终被停服
- 大众报业·海报新闻|该校此前已有3位校友获此殊荣,山东大学教授彭实戈获未来科学大奖
- 瑞银集团|瑞银钱于军:未来中国资本市场进一步开放 很多外资会摩拳擦掌
