【每日爬虫】:利用线程池爬取【每日爬虫】:利用线程池爬取2万张装修效果图万张装修效果图
文章目录文章目录一、前言二、需求三、技术路线四、线程池爬取2万张装修效果图五、其他
一、前言一、前言
2020-04-08日爬虫练习
每日一个爬虫小练习,学习爬虫的记得关注哦!
学习编程就像学习骑自行车一样,对新手来说最重要的是持之以恒的练习。
在《汲取地下水》这一章节中看见的一句话:“别担心自己的才华或能力不足。持之以恒地练习,才华便会有所增长”,现在想来,真是如此。
二、需求二、需求
具体参考我昨日爬虫具体参考我昨日爬虫:【每日爬虫】:给自己打造一个温馨的家,面朝大海,春暖花开
三、技术路线三、技术路线
import requests
import random, os, sys
from bs4 import BeautifulSoup # 数据解析之BeautifulSoup4库
import re,time # 正则表达式
from concurrent.futures import ThreadPoolExecutor # 线程池
关于关于 线程池线程池 可以参考我免费专栏可以参考我免费专栏:python多线程与多进程编程
关于关于 requests 和和 BeautifulSoup模块可以关注我免费专栏模块可以关注我免费专栏:爬虫学习笔记
四、线程池爬取四、线程池爬取2万张装修效果图万张装修效果图
'''
线程池爬土巴兔装修效果图,按分类爬取
version:02
author:金鞍少年
Blog:https://jasn67.blog.csdn.net/
date:2020-04-08
可以按照这个思路将所有涉及到网络请求,添加到异步线程池中,这样速度更快,但是对目标网站不友好,高频请求可能会导致被封IP
'''
import requests
import random, os, sys
from bs4 import BeautifulSoup
import re,time
from concurrent.futures import ThreadPoolExecutor
class House_renderings():
def __init__(self):
self.pool = ThreadPoolExecutor(10) # 开10个线程的线程池
self.is_running = True # 当is_running为True时,说明程序还在运行
# 户型
self.house_lis = '''
------- 请选择户型 ---------
1:一居室
2:两居室
3:三居室
4:四居室及以上
5:复式
6:别墅豪宅
7:其他
8:退出
'''
self.headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36',
'Referer': 'https://xiaoguotu.to8to.com/'
}