数据采集、清洗与标注 第4章课后习题参考答案_第1页
数据采集、清洗与标注 第4章课后习题参考答案_第2页
数据采集、清洗与标注 第4章课后习题参考答案_第3页
数据采集、清洗与标注 第4章课后习题参考答案_第4页
数据采集、清洗与标注 第4章课后习题参考答案_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章课后习题参考答案1.互联网数据组织形式(第4章4.1.1节)​​三大核心类型​​:​​结构化数据​​特征:固定模式存储示例:MySQL关系表(教材表4-1)典型应用:电商产品目录​​半结构化数据​​特征:自描述性标记案例:JSON格式的API响应(实例4-8){"product":"手机","price":3999,"in_stock":true}​​非结构化数据​​特征:无预定义模型典型数据:社交媒体图片/视频处理挑战:需要CV/NLP技术解析​​特殊类型​​:流式数据(实时日志)图数据(社交网络关系)2.网络爬虫工作流程(第4章4.1.3节)​​标准六步流程​​:​​种子URL选取​​策略:Alexa排名/行业目录示例:电商类目入口页​​页面下载​​工具:Requests/ScrapyDownloader防封策略:图4-5所示的UserAgent轮换​​内容解析​​技术栈:XPath(教材4.2.2节)CSS选择器(实例4-7)正则表达式​​数据存储​​存储方案对比:方案适用场景教材案例MySQL结构化数据实例4-10MongoDB非结构化数据实例4-12​​链接发现​​策略:广度优先(BFS)深度优先(DFS)​​反爬对抗​​常见手段:IP代理池(图4-6架构)验证码识别3.Requests请求状态判断(第4章4.2.1节)​​三重验证法​​:importrequestsresponse=requests.get('')#方法1:状态码校验ifresponse.status_code==200:print("Success")#方法2:异常捕获try:response.raise_for_status()exceptrequests.exceptions.HTTPErroraserr:print(f"Error:{err}")#方法3:内容校验if'预期关键词'inresponse.text:print("ContentVerified")​​高级判断​​:响应时间分析(timeout参数)重定向跟踪(allow_redirects=False)4.BeautifulSoup解析示例(第4章4.2.2节)​​电商页面解析案例​​:frombs4importBeautifulSouphtml_doc="""<html><divclass="product"><h3>智能手机</h3><spanclass="price">¥3999</span></div></html>"""soup=BeautifulSoup(html_doc,'html.parser')products=[]foriteminsoup.select('duct'):products.append({'name':item.h3.get_text(),'price':item.select_one('.price').get_text()[1:]})print(products)#输出:[{'name':'智能手机','price':'3999'}]​​解析技术对比​​:方法优点适用场景find_all()简单直接简单页面CSS选择器语法简洁复杂结构XPath功能强大嵌套层次深5.Python数据采集实例(第4章4.2.4节)​​新闻网站采集​​:importrequestsfrombs4importBeautifulSoupimportpandasaspdurl=''headers={'User-Agent':'Mozilla/5.0'}#伪装浏览器response=requests.get(url,headers=headers)soup=BeautifulSoup(response.text,'lxml')news_list=[]forarticleinsoup.select('article.news-item'):news_list.append({'title':article.h2.text,'time':article.time['datetime'],'link':article.a['href']})pd.DataFrame(news_list).to_csv('news.csv',index=False)​​关键技术点​​:请求头伪装(规避反爬)CSS选择器精准定位Pandas数据持久化6.Scrapy框架特点(第4章4.3.1节)​​核心优势矩阵​​:特性说明教材案例​​组件化架构​​引擎/调度器分离图4-15工作流​​高性能​​异步IO处理实例4-21对比测试​​扩展性强​​Middleware机制自定义代理中间件​​数据管道​​多格式输出支持实例4-20MySQL存储​​典型应用场景​​:分布式爬虫(Redis去重)动态页面渲染(Selenium集成)增量式爬取(时间戳比对)7.Items定义规范(第4章4.3.3节)​​标准定义模式​​:importscrapyclassProductItem(scrapy.Item):#必填字段name=scrapy.Field()price=scrapy.Field(serializer=lambdax:f"¥{x:.2f}")#可选字段description=scrapy.Field(default='暂无描述')#校验规则defvalidate_price(self,value):ifnotisinstance(value,(int,float)):raiseValueError("Pricemustbenumeric")​​高级技巧​​:字段元数据(meta参数)自定义管道验证多Item类型协同​​知识图谱​​:​​技术演进路径​​:

Requests→Beau

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论