quotes.toscrape.com/,进入网站首页,观察网页的结构,咱们发现网页的内容很清晰.html
主要分为:名人名言,做者,标签三个主要字段,同时三个字段的内容为本次提取的内容。python
\编程
打开开发者工具,点击networ进行网络数据抓包分析,网站是以get方式进行请求,不须要携带参数,那咱们就能够以request请求库中的get()方法,进行模拟请求,须要带上headers请求,模拟浏览器信息验证,防止被网站服务器检测为爬虫请求。浏览器
也能够点击开发者工具的最左边小箭头,能够帮助咱们快速定位,网页数据在element标签页所在的位置.服务器
请求成功以后,能够开始提取数据啦~,我用的是xpath的解析方法,因此,先来解析xpath页面,点击最左边小箭头,能够帮助咱们快速定位数据所,网页数据在element标签页所在的位置.由于网页的请求方式数据以列表的方式逐条排序,因此咱们能够先定位整个列表的数据。在经过lxm中html解析器,逐个字段抓取并保存至列表,方便下一步的数据清洗.网络
\app
import requests from lxml import etree import 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的,能够直接留言+私我鸭【很是感谢你的点赞、收藏、关注、评论,一键四连支持】
ide