From 9385d438ab5c28a6d7a16fdf51553f3f5e6c8208 Mon Sep 17 00:00:00 2001 From: jackfrued Date: Sun, 3 Jun 2018 21:45:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BA=86=E9=83=A8=E5=88=86?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Day66-75/04.并发下载.md | 143 +++++++++++++++++++++++++++ Day66-75/07.数据清洗.md | 2 - Day66-75/Scrapy的应用01.md | 76 ++++++++++++++ Day66-75/code/main.py | 2 +- Day66-75/code/main_redis.py | 2 +- Day66-75/res/scrapy-architecture.jpg | Bin 0 -> 55810 bytes 6 files changed, 221 insertions(+), 4 deletions(-) delete mode 100644 Day66-75/07.数据清洗.md create mode 100644 Day66-75/res/scrapy-architecture.jpg diff --git a/Day66-75/04.并发下载.md b/Day66-75/04.并发下载.md index b15fa5d..8553299 100644 --- a/Day66-75/04.并发下载.md +++ b/Day66-75/04.并发下载.md @@ -1,2 +1,145 @@ ## 并发下载 +### 多线程和多进程回顾 + + + +### 实例 - 多线程下载“手机搜狐网”所有页面。 + +```Python + +from enum import Enum, unique +from queue import Queue +from random import random +from threading import Thread, current_thread +from time import sleep +from urllib.parse import urlparse + +import requests +from bs4 import BeautifulSoup + + +@unique +class SpiderStatus(Enum): + IDLE = 0 + WORKING = 1 + + +def decode_page(page_bytes, charsets=('utf-8',)): + page_html = None + for charset in charsets: + try: + page_html = page_bytes.decode(charset) + break + except UnicodeDecodeError: + pass + return page_html + + +class Retry(object): + + def __init__(self, *, retry_times=3, + wait_secs=5, errors=(Exception, )): + self.retry_times = retry_times + self.wait_secs = wait_secs + self.errors = errors + + def __call__(self, fn): + + def wrapper(*args, **kwargs): + for _ in range(self.retry_times): + try: + return fn(*args, **kwargs) + except self.errors as e: + print(e) + sleep((random() + 1) * self.wait_secs) + return None + + return wrapper + + +class Spider(object): + + def __init__(self): + self.status = SpiderStatus.IDLE + + @Retry() + def fetch(self, current_url, *, charsets=('utf-8', ), + user_agent=None, proxies=None): + thread_name = current_thread().name + print(f'[{thread_name}]: {current_url}') + headers = {'user-agent': user_agent} if user_agent else {} + resp = requests.get(current_url, + headers=headers, proxies=proxies) + return decode_page(resp.content, charsets) \ + if resp.status_code == 200 else None + + def parse(self, html_page, *, domain='m.sohu.com'): + soup = BeautifulSoup(html_page, 'lxml') + url_links = [] + for a_tag in soup.body.select('a[href]'): + parser = urlparse(a_tag.attrs['href']) + scheme = parser.scheme or 'http' + netloc = parser.netloc or domain + if scheme != 'javascript' and netloc == domain: + path = parser.path + query = '?' + parser.query if parser.query else '' + full_url = f'{scheme}://{netloc}{path}{query}' + if full_url not in visited_urls: + url_links.append(full_url) + return url_links + + def extract(self, html_page): + pass + + def store(self, data_dict): + pass + + +class SpiderThread(Thread): + + def __init__(self, name, spider, tasks_queue): + super().__init__(name=name, daemon=True) + self.spider = spider + self.tasks_queue = tasks_queue + + def run(self): + while True: + current_url = self.tasks_queue.get() + visited_urls.add(current_url) + self.spider.status = SpiderStatus.WORKING + html_page = self.spider.fetch(current_url) + if html_page not in [None, '']: + url_links = self.spider.parse(html_page) + for url_link in url_links: + self.tasks_queue.put(url_link) + self.spider.status = SpiderStatus.IDLE + + +def is_any_alive(spider_threads): + return any([spider_thread.spider.status == SpiderStatus.WORKING + for spider_thread in spider_threads]) + + +visited_urls = set() + + +def main(): + task_queue = Queue() + task_queue.put('http://m.sohu.com/') + spider_threads = [SpiderThread('thread-%d' % i, Spider(), task_queue) + for i in range(10)] + for spider_thread in spider_threads: + spider_thread.start() + + while not task_queue.empty() or is_any_alive(spider_threads): + sleep(5) + + print('Over!') + + +if __name__ == '__main__': + main() + +``` + diff --git a/Day66-75/07.数据清洗.md b/Day66-75/07.数据清洗.md deleted file mode 100644 index 0d449da..0000000 --- a/Day66-75/07.数据清洗.md +++ /dev/null @@ -1,2 +0,0 @@ -## 数据清洗 - diff --git a/Day66-75/Scrapy的应用01.md b/Day66-75/Scrapy的应用01.md index e69de29..e66f5ff 100644 --- a/Day66-75/Scrapy的应用01.md +++ b/Day66-75/Scrapy的应用01.md @@ -0,0 +1,76 @@ +## Scrapy的应用(01) + +### Scrapy概述 + +Scrapy是Python开发的一个非常流行的网络爬虫框架,可以用来抓取Web站点并从页面中提取结构化的数据,被广泛的用于数据挖掘、数据监测和自动化测试等领域。下图展示了Scrapy的基本架构,其中包含了主要组件和系统的数据处理流程(图中的绿色箭头)。 + +![](./res/scrapy-architecture.jpg) + +#### 组件 + +1. Scrapy引擎(Engine):Scrapy引擎是用来控制整个系统的数据处理流程。 +2. 调度器(Scheduler):调度器从Scrapy引擎接受请求并排序列入队列,并在Scrapy引擎发出请求后返还给它们。 +3. 下载器(Downloader):下载器的主要职责是抓取网页并将网页内容返还给蜘蛛(Spiders)。 +4. 蜘蛛(Spiders):蜘蛛是有Scrapy用户自定义的用来解析网页并抓取特定URL返回的内容的类,每个蜘蛛都能处理一个域名或一组域名,简单的说就是用来定义特定网站的抓取和解析规则。 +5. 条目管道(Item Pipeline):条目管道的主要责任是负责处理有蜘蛛从网页中抽取的数据条目,它的主要任务是清理、验证和存储数据。当页面被蜘蛛解析后,将被发送到条目管道,并经过几个特定的次序处理数据。每个条目管道组件都是一个Python类,它们获取了数据条目并执行对数据条目进行处理的方法,同时还需要确定是否需要在条目管道中继续执行下一步或是直接丢弃掉不处理。条目管道通常执行的任务有:清理HTML数据、验证解析到的数据(检查条目是否包含必要的字段)、检查是不是重复数据(如果重复就丢弃)、将解析到的数据存储到数据库(关系型数据库或NoSQL数据库)中。 +6. 中间件(Middlewares):中间件是介于Scrapy引擎和其他组件之间的一个钩子框架,主要是为了提供自定义的代码来拓展Scrapy的功能,包括下载器中间件和蜘蛛中间件。 + +#### 数据处理流程 + +Scrapy的整个数据处理流程由Scrapy引擎进行控制,通常的运转流程包括以下的步骤: + +1. 引擎询问蜘蛛需要处理哪个网站,并让蜘蛛将第一个需要处理的URL交给它。 +2. 引擎让调度器将需要处理的URL放在队列中。 +3. 引擎从调度那获取接下来进行爬取的页面。 +4. 调度将下一个爬取的URL返回给引擎,引擎将它通过下载中间件发送到下载器。 +5. 当网页被下载器下载完成以后,响应内容通过下载中间件被发送到引擎;如果下载失败了,引擎会通知调度器记录这个URL,待会再重新下载。 +6. 引擎收到下载器的响应并将它通过蜘蛛中间件发送到蜘蛛进行处理。 +7. 蜘蛛处理响应并返回爬取到的数据条目,此外还要将需要跟进的新的URL发送给引擎。 +8. 引擎将抓取到的数据条目送入条目管道,把新的URL发送给调度器放入队列中。 +9. 上述操作会一直重复直到调度器中没有需要请求的URL,爬虫停止工作。 + +### 安装和使用Scrapy + +可以先创建虚拟环境并在虚拟环境下使用pip安装scrapy。 + +```Shell + +$ +``` + +项目的目录结构如下图所示。 + +```Shell + +(venv) $ tree +. +|____ scrapy.cfg +|____ qianmu +| |____ spiders +| | |____ __init__.py +| | |____ __pycache__ +| |____ __init__.py +| |____ __pycache__ +| |____ middlewares.py +| |____ settings.py +| |____ items.py +| |____ pipelines.py +``` + +> 说明:Windows系统的命令行提示符下有tree命令,但是Linux和MacOS的终端是没有tree命令的,可以用下面给出的命令来定义tree命令,其实是对find命令进行了定制并别名为tree。 +> +> `alias tree="find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'"` +> +> Linux系统也可以通过yum或其他的包管理工具来安装tree。 +> +> `yum install tree` + +根据刚才描述的数据处理流程,基本上需要我们做的有以下几件事情: + +1. 在items.py文件中定义字段,这些字段用来保存数据,方便后续的操作。 +2. 在spiders文件夹中编写自己的爬虫。 +3. 在pipelines.py中完成对数据进行持久化的操作。 +4. 修改settings.py文件对项目进行配置。 + + + diff --git a/Day66-75/code/main.py b/Day66-75/code/main.py index 571a14d..51defec 100644 --- a/Day66-75/code/main.py +++ b/Day66-75/code/main.py @@ -123,7 +123,7 @@ def main(): spider_thread.start() while not task_queue.empty() or is_any_alive(spider_threads): - pass + sleep(5) print('Over!') diff --git a/Day66-75/code/main_redis.py b/Day66-75/code/main_redis.py index b73a6bc..85a262b 100644 --- a/Day66-75/code/main_redis.py +++ b/Day66-75/code/main_redis.py @@ -124,7 +124,7 @@ def is_any_alive(spider_threads): for spider_thread in spider_threads]) -redis_client = redis.Redis(host='120.77.222.217', +redis_client = redis.Redis(host='1.2.3.4', port=6379, password='1qaz2wsx') mongo_client = pymongo.MongoClient(host='120.77.222.217', port=27017) db = mongo_client.msohu diff --git a/Day66-75/res/scrapy-architecture.jpg b/Day66-75/res/scrapy-architecture.jpg new file mode 100644 index 0000000000000000000000000000000000000000..403f963e3f06752b3df97a56a3830ccb116a1b80 GIT binary patch literal 55810 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 z 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 literal 0 HcmV?d00001