社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python爬虫抓取名人名言网站

马哥Linux运维 • 3 年前 • 547 次点击  

1、输入网址

quotes.toscrape.com/,进入网站首页,观察网页的结构,我们发现网页的内容很清晰,

主要分为:名人名言,作者,标签三个主要字段,同时三个字段的内容为本次提取的内容。

2、确定需求,分析网页结构

打开开发者工具,点击networ进行网络数据抓包分析,网站是以get方式进行请求,不需要携带参数,那我们就可以以request请求库中的get()方法,进行模拟请求,需要带上headers请求,模拟浏览器信息验证,防止被网站服务器检测为爬虫请求。

 

也可以点击开发者工具的最左边小箭头,可以帮助我们快速定位,网页数据在element标签页所在的位置。

 

3、解析网页结构,提取数据。

请求成功之后,可以开始提取数据啦~,我用的是xpath的解析方法,所以,先来解析xpath页面,点击最左边小箭头,可以帮助我们快速定位数据所,网页数据在element标签页所在的位置.因为网页的请求方式数据以列表的方式逐条排序,所以我们可以先定位整个列表的数据。在通过lxm中html解析器,逐个字段抓取并保存至列表,方便下一步的数据清洗。

 

4、保存至csv文件

源码分享

import requestsfrom lxml import etreeimport csv
url = "https://quotes.toscrape.com/"headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36'}

res = requests.get(url,headers = headers).text
html = etree.HTML(res)
queto_list = html.xpath('//div[@class="col-md-8"]')
lists = []
for queto in queto_list: # 名言正文 title = queto.xpath('./div[@class="quote"]/span[1]/text()') # 作者 authuor = queto.xpath('./div[@class="quote"]/span[2]/small/text()') # 名言标签 tags = queto.xpath('./div[@class="quote"]/div[@class="tags"]/a[@class="tag"]/text()') # 将数据统一添加进列表中保存 lists.append(title) lists.append(authuor) lists.append(tags)

with open("./名人名言.csv",'w',encoding='utf-8',newline='\n') as f:
writer = csv.writer(f) for i in lists: writer.writerow(x)

以上就是Python爬虫抓取名人名言网站的方法,希望对大家有所帮助。

文章转载:Python编程学习圈
(版权归原作者所有,侵删)

点击下方“阅读原文”查看更多

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/123099
 
547 次点击