博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
03、书店寻宝(二)
阅读量:6261 次
发布时间:2019-06-22

本文共 3117 字,大约阅读时间需要 10 分钟。

 
    题目要求:你需要爬取的是网上书店Books to ScrapeTravel这类书中,所有书的书名、评分、价格三种信息,并且打印提取到的信息。
 
    网页URL:
 
1 #3、书店寻宝(二) 2 #    题目要求:你需要爬取的是网上书店Books to ScrapeTravel这类书中,所有书的书名、评分、价格三种信息,并且打印提取到的信息。 3 #    网页URL:http://books.toscrape.com/catalogue/category/books/travel_2/index.html 4  5 import requests 6 from bs4 import BeautifulSoup 7 res = requests.get('http://books.toscrape.com/catalogue/category/books/travel_2/index.html') 8 html = res.text 9 soup = BeautifulSoup(html,'html.parser')10 items = soup.find_all('article',class_='product_pod')11 for item in items:12     print(item.find('h3').find('a')['title']+'\t'+item.find('p')['class'][1],'\t',item.find('p',class_='price_color').text)13 #    print(item.find('h3').find('a')['title'])14 #    print(item.find('p')['class'][1])15 #    print(item.find('p',class_='price_color').text)16 17 18 '''19 执行结果如下:20 It's Only the Himalayas Two      £45.1721 Full Moon over Noahâs Ark: An Odyssey to Mount Ararat and Beyond    Four     £49.4322 See America: A Celebration of Our National Parks & Treasured Sites      Three    £48.8723 Vagabonding: An Uncommon Guide to the Art of Long-Term World Travel     Two      £36.9424 Under the Tuscan Sun    Three    £37.3325 A Summer In Europe      Two      £44.3426 The Great Railway Bazaar        One      £30.5427 A Year in Provence (Provence #1)        Four     £56.8828 The Road to Little Dribbling: Adventures of an American in Britain (Notes From a Small Island #2)   One          £23.2129 Neither Here nor There: Travels in Europe       Three    £38.9530 1,000 Places to See Before You Die      Five     £26.0831 '''32 33 '''34 老师的代码35 36 import requests37 from bs4 import BeautifulSoup38 39 res_bookstore = requests.get('http://books.toscrape.com/catalogue/category/books/travel_2/index.html')40 bs_bookstore = BeautifulSoup(res_bookstore.text,'html.parser')41 list_books = bs_bookstore.find_all(class_='product_pod')42 for tag_books in list_books:43 # 找到a标签需要提取两次44     tag_name = tag_books.find('h3').find('a')45 # 这个p标签的class属性有两种:"star-rating",以及具体的几星比如"Two"。我们选择所有书都有的class属性:"star-rating"46     list_star = tag_books.find('p',class_="star-rating")47 # 价格比较好找,根据属性提取,或者标签与属性一起都可以48     tag_price = tag_books.find('p',class_="price_color")49 # 这里用到了tag['属性名']提取属性值50     print(tag_name['title'])51 # 同样是用属性名提取属性值52     print('star-rating:',list_star['class'][1])53 # 用list_star['class']提取出来之后是一个由两个值组成的列表,如:"['star-rating', 'Two']",我们最终要提取的是这个列表的第1个值:"Two"。54 # 为什么是列表呢?因为这里的class属性有两个值。其实,在这个过程中,我们是使用class属性的第一个值提取出了第二个值。55 # 打印的时候,我加上了换行,为了让数据更加清晰地分隔开,当然你也可以不加。56     print('Price:',tag_price.text, end='\n'+'------'+'\n')57 '''

 

items中每个Tag的内容如下
 
1 
2
3
It's Only the Himalayas 5
6

7 8 9 10 11 12

13

It's Only the14 Himalayas

15
16

£45.17

17

18 19 20 21 In stock22 23 24

25
26
27
28
29

 

转载于:https://www.cnblogs.com/www1707/p/10692316.html

你可能感兴趣的文章
Django 的生命周期
查看>>
菜鸟也玩DNS之配置DNS的MX记录
查看>>
实战操作主机角色转移之清除宕机DC的元数据(三)
查看>>
MySQL实现序列(Sequence)效果以及在Mybatis中如何使用这种策略
查看>>
QTP关键字视图下显示项的相关设置
查看>>
openDICOM
查看>>
Linux下有两种聊天命令
查看>>
DataGridView 行的用户删除操作的自定义
查看>>
linux cpu内存利用率获取
查看>>
产品设计体会(8009)产品经理值得看的16个博客
查看>>
Hyper-V 2016 系列教程13 虚拟机监控程序规范
查看>>
SetupDiGetDeviceInterfaceDetail 函数
查看>>
让百度、Google搜到你的博客和论坛
查看>>
C++串口编程实例
查看>>
SSRS 2012 报表基本结构与设置
查看>>
Exchange 2013部署系列之(七)配置SSL多域名证书
查看>>
WPF:从WPF Diagram Designer Part 1学习控件模板、移动、改变大小和旋转
查看>>
创建与SharePoint 2010风格一致的下拉菜单
查看>>
Linux下创建与解压zip, tar, tar.gz和tar.bz2文件
查看>>
IT基础结构-4.BDNS-安装与配置
查看>>