文章目录
一、前言
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/'
}
# 代理ip
self.all_proxies = [
{
'http': '183.166.20.179:9999'}, {
'http': '125.108.124.168:9000'},
{
'http': '182.92.113.148:8118'}, {