ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

轻轻学爬虫—scrapy框架巧用3

2021-06-17 22:03:15  阅读:171  来源: 互联网

标签:url 爬虫 li start scrapy com 巧用


# 轻轻学爬虫—scrapy框架巧用3 本节继续来学习scrapy框架,本博主会以不同方法,实战的方式来讲解爬虫。省去了全篇一律的方法。 上节课我们学习了如何常见一个scrapy及一个spider。本节我们就在spider中实现一个简单的小爬虫。 由于大部分的知识没有讲到,大家可以复制我的代码演示,后续我会把缺少的知识点,补上不要着急、 ![scrapy目录.png](http://www.icode9.com/i/li/?n=2&i=images/20210617/1623937761971463.png?,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) 我们这次代码都在这个文件里写,直接上代码。 ## 爬虫案例 ```python import scrapy import bs4 class DangdangSpider(scrapy.Spider): #爬虫名字启动时候要用 name = 'dangdang' #可以写可以不写 allowed_domains = ['http://www.dangdang.com/'] #实际项目中url中可能会放对象而不是单纯的url start_urls = [{'url':'http://search.dangdang.com/?key=python&act=input','method':'GET'}] def start_requests(self): """ 重写请求 :return: """ #临时部分,后续会加到中间件 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.106 Safari/537.36' } for req_obj in self.start_urls: mothod = req_obj.get('mothod',None) url = req_obj.get('url',None) if mothod == 'POST': data={} yield scrapy.Request(url, dont_filter=True, headers=headers, method="POST",body=data,callback=self.parse) else: yield scrapy.Request(url, dont_filter=True,headers=headers,method="GET",callback=self.parse) def parse(self, response): bs_res = bs4.BeautifulSoup(response.text, 'html.parser') li_list = bs_res.find_all('ul', class_='bigimg') for li in li_list: li_p_name = li.find_all('p', class_='name') for i in li_p_name: title = i.find('a').text url = i.find('a')['href'] print(title, url) ``` 大家可以复制我的代码,刚开始肯定有不懂的地方,我先大致讲解一下。 ### 类属性 name 爬虫名字启动时候要用 我们起的名字是dangdang allowed_domains 爬虫作用范围,可以不写 start_urls 其实url可以放地址url也可以构造请求对象。 ### 方法 start_requests 这个是系统方法,我这里重写了这个方法,考虑到我们请求很多个网站时,通用框架时,请求方式参数都会变,这里做了重写。 parse 解析方法 。start_requests请求后我们进行回调,将response解析。 ### 其他知识 bs4库解析html库后续会讲。xpath和正则后续都会涉及。 目前代码很丑很简陋这没关系,美化也是我们学习的过程,有了代码后我们如何启动呢。打开终端执行下面命令。 ``` scrapy crawl dangdang ``` 注意:这个命令一定要在下面图片中的目录,不然找不到命令。 ![启动命令.png](http://www.icode9.com/i/li/?n=2&i=images/20210617/1623937774432129.png?,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) 启动后爬虫会运行一大堆,看不懂的过程,没关系,我们下节课就来学习分析这些看不懂的东西,想要学好scrapy框架,这些是必须要掌握的。 ### 过程和结果 ![效果.png](http://www.icode9.com/i/li/?n=2&i=images/20210617/1623937781817094.png?,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=) 到这里一个小爬虫就写完了,这是我们写的第一个爬虫值得高兴。多理解一下上面粗糙的代码,等学过一定时间后你回头看看粗糙的说明你成长了。 码字不易,欢迎大家在评论区留言,收藏。或者加入[群聊](https://jq.qq.com/?_wv=1027&k=vH00muGu)一起进步学习。

标签:url,爬虫,li,start,scrapy,com,巧用
来源: https://blog.51cto.com/u_15241290/2919620

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有