下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、教学提示网络爬虫实践教 案NO. 5教师姓名授课班级授课形式理实一体化授课时间年 月 日第周授课时数4授课章节名称任务3使用Scrapy爬取北京公交信息教学目的学会使用Scrapy爬取北京公交信息°教材分析教学重点使用Scrapy爬取北京公交信息教学难点使用Scrapy爬取北京公交信息更新、补充、删节内容课外作业积极动手实践, 熟练完成相关任务的实施操作教学过程任务三、使用Scrapy收取北京公交信乩1.任务描述(1)借助学习论坛、网络视频等网络资源和各种图书资源,学习网络爬虫 相关技术,熟悉Scrapy的使用。(2)使用Scrapy实现淘宝网站信息的获取。2、任务目标学会使用Scr
2、apy爬取北京公交信息°3、知识准备了解 Scrapy:Scrapy是一个为了爬取网站数据、提取结构性数据而编写的应用框架,可 以应用在包括实现数据挖堀功能、信息处理功能或存储历史数据切能等的一系 列处理程序中。(2)Scrapy的操作流程:1. 选择一个网站2 .创延一个Scrapy项目3 .创建一个spider4 .定义Item5 .编写 spider创戏一个spider,必须继承scrapy.Spider类,且定义以下3个属性:(1) name:用于区分spider。该名称必须是唯一的,不可以为不同的spider 设定相同的名称。(2) start.urls:包含了叩ider在
3、启动时进行爬取的URL列表。因此,第 一个被获取到的页面将是其中之一。后续的 URL则从初始的 URL获取到的 数据中提取。(3) parse(): spider的一个方法。被调用时.每个初始URL完成下载后生 成的Response对象将会作为唯一的参数传递给该函数。该方法负资解析返回的 数据,提取数据(生成Item)以及生成需要进一步处理的 URL的Request对 象。6 .提取 Item(使用机制:Scrapy Selectors)(1)淋用的Xpath表达式以及对应的含义:0/html/head/title:选择HTML文档中head标签内的title元素。/html/head/tit
4、le/text。:选择前面提到的title元素的文字。/td :选择所有的td元素。/div(§>class=MmineH:选择所有具有 class="mine”属性的 div 元素。(2)selector有以下4个基本的方法:xpath():传入Xpath表达式,返回该表达式所对应的所有节点的selector列表。css():传入CSS表达式,返回该表达式所对应的所有节点的selector列表。 extract():序列化该节点为Unicode字符串并返回list。re():根据传入的正则表达式对数据进行提取,返回Unicode字符串的list7 .存储爬取的数据(
5、使用Feed exports)8 .执行项目4、任务实施(1)在命令行窗口中新戏,一个名为beibus的Scrapy项目C:Usersiac>serai>y startproject beibusNw Scrapy project beibus* , using tsirpl斗b directory ' c: u59rsiracWappdataloca 1 kprograni5pyt.honpyt.hca36 1site-pa'±asesscrapyWtenplitesj>roject '"eated in:C: User33acb
6、eibusYou can start your first spider with: cd beibus scrapy senspider exanple ex-airple. can(2)切换到beibus目录,并使用genspider创建一个spiderbeibus?: Usws kT»cbeibus>scrpy genspider be5 Jxjg boi jins,0684. cnCreated spider ' beibiB* usingbasic in ircdile:beibis. epi ctors- bei.bjs(3)使用PyCharm打开beibu
7、s项目y b«ibus C:U5er5macbffibu57 beibus v I spiders ,%_py+ b«i_bu5.py/ _init_.py.item5.py/ middl'ares.pyA pipelines-pyH settings.py 宗 saapydg > Dill External libraries(4)进入 settings,将 ROBOTSTXT_OBEY 的参数改为 False(5)将DEFAULT_REQUEST_HEADERS方法的注释去掉,并在其中流力口 User-Agent 属性。(6)进入bei_bus.py文件,
8、对start_urls进行修改。(7)新提一h startequests()方法(此方法名 固定),获得并构延一级网页URL (8)在parse_index()方法中.使用Xpath寻找详细信息页面的URL,并 对网址进彳亍拼接,之后对二级网页发限请求,并返回回调函数parsjdetail。(9)在parse_detail()方法中对详细信息页面进行操作。(10)对 wang_list_tag字段和fan_list_tag字段进彳亍格式化。(II)进入items.py文件,修改其中的class以格式化数据。(12)在beLbus.py文件的parse_detail()方法的末尾添加如下语句,以
9、格式 化数据。bus_item = BeibusItemOfor field in bus_iten. fields: bus_itemlfield = eval(field)yield bus_item(13)在MySQL的studb数据库中创提一个stu businfo表hysql> CREATE TABLE stu_businfo(- > bus_name varchar(1000),- > bus-type varchar (1000),- > bus.tine varchar(1000) - > ticket varchar(1000),- > g
10、ongsi varchar(1000)»- > gengxin varchar(lOOO),- > licheng varchar(1000).- > wang_info varchar(1000),- > wang_buff varchar (1000),- >fan_info varchar(1000),- > fan_buff varchar(1000)- > DEFAULT CHARSET=utf-8:(14)在settings.py文件末尾添加如下参数.DB_HOST = * I oca I host,DB_USER = '
11、stu'DB_PWD = ,stu123,DBCHARSET='UTF8,(15)修改 pipelines.py 文件import pymysqIfrom beibus import settingscI ass MysqIP i peIi ne(object):def _init_(self):self, host = settings. DB_HOSTself.user = settings. DB_USERself, pwd = settings. DB_PWDself, db = settings. DBself, charset = setting. DB. CHAR
12、SETself, connect ()def connect (seIf):self.conn = pymysqI. connect (host=seIf. host, user=self.user, password;self. pwd. db=self. db.charset=self. charset)self, cursor = self. conn.cursor 0(16)添加一个close_spider()方法,用于关闭MySQL数据库。(17)实现 process_item()方法。(18)在settings.py中将ITEM.PIPELINES方法的注释去掉,并将其中的内容改为
13、 “'beibus.pipelines.MysqlPipeline':300"oITEM.PIPELINES =(? beibus. pipelines. MysqlPipeline' : 300启动爬虫项目:在 PyCharm 软件左下角单击“Terminal”标签,进入命令行界面,在其中 执行 ascrapy crawl bei_bus”命令。J,K»” X,匕OPea y CBXm,Ms J W_UmW T 、“ 3M>, aMPiC*- 一-* *Fm* F*r*1 1080> M,F2 Ubr*W*1 9 B”.一tryvang
14、_3nfo r«R>cr««. aputhl* / r<i«i*"bu«_l if>«- Mdav(4)/dir/Btron«/t«st()* I. axtract.firat II xcaptv«n«. info -径 try r«Mjprrw*. sruthTm»"j <dlv5)/d»v/di*/a</t««t ()' I. i>xtr4Ct O<vc«ptMU3.”5.3 Noiw ->pathi( /(ld«*bu*-l xn* /dlr(6/d»T/Btran</t«xt () > >. xtract.r»r«t (>IC»Dtf«n_>n£o Non« try幺-r«t»cnwe. n»xh(' /(1d-*bu«_l»
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 未来五年水泥花砖行业市场营销创新战略制定与实施分析研究报告
- 未来五年新形势下专业促销服务行业顺势崛起战略制定与实施分析研究报告
- 2026年吉大一院春季招聘梅河医院招聘(83人)考试备考题库及答案解析
- 2026北京大学新闻与传播学院教学科研岗位招聘笔试模拟试题及答案解析
- 2026天津市武清区卫健系统招聘事业单位(含高层次人才)90人笔试备考题库及答案解析
- 2025年宁夏回族自治区吴忠市高职单招职业适应性测试考试试题及答案解析
- 2026年楚雄姚安县高中教师招聘(14人)考试备考题库及答案解析
- 2025年镇江高等专科学校单招职业技能考试试题及答案解析
- 2025年河北交通职业技术学院单招职业技能考试试题及答案解析
- 2026浙江杭州市景汇中学招聘初中社会教师(非事业)考试参考试题及答案解析
- 2026北京市公安局监所管理总队招聘勤务辅警300人笔试参考题库及答案解析
- 2026年张家界航空工业职业技术学院单招职业技能考试备考题库含详细答案解析
- 迟到考勤考核制度
- 民航地面服务操作规范与流程手册(标准版)
- 中国军队被装集中洗消社会化保障模式分析报告
- 2025生产安全事故伤害损失工作日判定培训课件
- 2025-2026学年人教版(新教材)小学数学一年级下册教学计划(附进度表)
- 初中语法每日小纸条【答案版】
- GB/T 18998.1-2022工业用氯化聚氯乙烯(PVC-C)管道系统第1部分:总则
- 《国际金融》课件第九章国际金融组织与国际金融治理体系
- 沙漠掘金(经典版)-沙漠掘金攻略
评论
0/150
提交评论