Shein面试一面+二面+三面+ get offer

在这里插入图片描述
【随着公司的快速发展,面试的要求越来越高了,不能只局限于面试题,应该还得有一手实践能力】

一面准备

1.从项目设计到的问起
2.分布式事务实现方法
3.阻塞队列的实现
4.mybatis的用法
5.String,StringBuffer和StringBuilder的区别
6.dubbo的用法
1.HashMap底层
2.redis的数据结构
3.分布式的一个问题tomcat日志打印的线程模型
4.spring事务
重点:java知识,MySQL,常用框架(SSM)

本人一面面经

1)什么是组合?继承?依赖
2)修饰符的区别,public
3)基本数据类型和成员变量类型上的选择,基本数据类型的创建内存在哪
4)你了解设计模式吗工厂模式。讲下什么是工厂模式?他问怎么实现?
5)深拷贝和浅拷贝,区别?怎么实现?
6)关于项目的问题
7)get和Pos的区别
8)String,StringBuffer和StringBuilder的区别,String源码问题
9)String源码的一些问题,为什么String是不可变的,字符拼接“+”的实现,
10)ArrayList和LinkedList的区别
11)Map用过吗–HashMap和ConcurrentHashMap–》那说下hashMap初始化容量,讲下扩容机制。Hashmap怎么获取所有的key
12)HashMap和HashTable的区别。HashTable的初始容量扩容,扩容多少倍
13)hashSet的底层原理,提问如果添加对象要注意什么
14)抽象类和接口的区别
15)线程池有哪些,讲下特点,创建线程的方式
16)final修饰的类,方法,变量的区别
17)Spring:用过哪些标签?IOC原理,Spring事务了解吗,隔离级别
18)@Controller和@ReXXController
19)#和$的区别?Mybatis的常用标签用过哪些
20)运行时异常你遇见过哪些
21)Redis的线程模型,为什么Redis的操作是原子性的
时间原因,问了50多min,说剩下的不问了,问了能否过,可以

二面准备(源于网络)

一:
1)redis内部如何实现排序的
sort命令
sort命令可以对列表类型、集合类型和有序集合类型进行排序。 在score相同的情况下,redis使用字典排序(字典排序就是在首字母相同的情况下,比较第二个字母,以此类推)
2)rabbitmq是如何做到有序的接受消息的
队列
3)mysql索

### 构建Shein爬虫的方法 构建针对Shein网站或应用的爬虫需要综合考虑目标站点的技术特点以及其可能采用的反爬机制。以下是具体实现方案: #### 使用Scrapy与Selenium结合的方式 对于像Shein这样的电商网站,通常会通过JavaScript动态加载内容并实施严格的反爬策略。因此,推荐使用 **Scrapy** 和 **Selenium** 的组合来完成数据抓取任务[^1]。 - Scrapy是一个功能强大且灵活的爬虫框架,支持高效的页解析和异步请求处理。 - Selenium则用于模拟真实的浏览器行为,从而解决由JavaScript渲染带来的挑战。 在实际操作中,可以通过以下方式集成两者: ```python from scrapy import Spider from selenium.webdriver import Chrome from selenium.webdriver.chrome.options import Options class SheinSpider(Spider): name = 'shein_spider' def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) chrome_options = Options() chrome_options.add_argument("--headless") # 设置无头模式 self.driver = Chrome(options=chrome_options) def parse(self, response): url = "https://www.shein.com" self.driver.get(url) # 等待页完全加载后再提取HTML源码 html_content = self.driver.page_source yield {"html": html_content} def closed(self, reason): self.driver.quit() # 关闭驱动程序释放资源 ``` 此代码片段展示了如何利用Chrome WebDriver启动一个隐藏窗口(即不显示GUI界),访问指定URL地址,并最终返回完整的HTML文档作为响应的一部分。 #### 配置Cookies增强伪装效果 为了进一步规避检测风险,在发送HTTP请求之前还可以预先设定好必要的Cookie信息。这一步骤可以在Downloader Middleware层上执行[^3]: ```python def process_request(request, spider): request.cookies = { 'session_id': 'your_session_value', '_ga': 'GA1.2.xxx', '_gid': 'GA1.2.yyy' } ``` 上述函数定义了一个自定义中间件类中的`process_request()`方法,它会在每次发出新的请求前自动附加相应的Cookie键值对至头部字段之中。 另外值得注意的是,如果发现即使采取以上措施仍然无法成功获取所需数据,则可能是由于目标服务器启用了更高级别的防护手段所致——例如基于机器学习算法识别异常流量特征等等。此时除了单纯依赖技术层调整外,还应当仔细研究对方的具体规则并与之保持适当距离以免触犯法律底线[^2]。 最后提醒一点:务必尊重各平台的服务条款及隐私政策规定,在合法合规的前提下开展任何网络活动!
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值