【Python爬虫系列】为什么我喜欢python?来看看这些让人爱不释手的原因吧,购物网站大盘点,看过这些python做的项目,我立马入坑了…(神奇 | 爱了,爱了)

news/2024/5/13 19:57:33/文章来源:https://blog.csdn.net/weixin_55822277/article/details/128967950

导语

Python编程零基础如何逆袭成为爬虫实战高手?!

哈喽!我是木木子,你们的贴心小助手。想学习爬虫的小可爱注意啦,一定不要错过哦~

所有文章完整的素材+源码都在👇👇

粉丝白嫖源码福利,请移步至CSDN社区或文末公众hao即可免费。

今天带大家体验一下爬虫的魅力,让没接触的小可爱也爽一把。看看爬虫能给我们生活工作总

带来那些便利呢!我说大家听?nonono ,我们直接上案例,近距离手把手教大家实现爬虫。

——小tips

做学术研究、论文需要获取大量的数据、文献信息怎么办

现在Python爬虫很火,我没有基础应该从何学起

我是企业在网上看到一些数据想抓取下来怎么办

?我是做设计的,这么多素材我总不能一个一个下载,怎么办

!!!0基础起步,没有编程基础可以学

!!!关注小编,教你从零基础开始学习,新手大礼包找我就给(免费)

!!!在学完小编给大家准备的各种实战案例之后,爬取W博、D瓣、Z乎、M眼、T宝、S

宁、X程、G票,还有Zhi网……vip破解、wifi破解等手到擒来...想干啥不行?(当然犯法

的事情不行哈)爬虫虽好,但是不要乱爬哦,这就是另外的故事啦!

爬虫系列还在规划中,每次都给大家带来不同的爬虫案例实战,想学习的赶紧关注一波哦!

正文

嗨,我是木子,这次来分享一些有关于我的购物经验的爬虫内容!

今天的爬虫案例实战分为三大块哦:都是关于购物方面的网站,大家肯定猜到啦!

——怎样买到性价比高、配置好的笔记本?收好这份笔记本电脑选购指南。(J东爬虫)

——春天来了,女人都该“种草”了!(口红顶级攻略↓)(WP会爬虫)

——炎热的夏天到了,我该怎么选择物美价廉的短裤呢?!(T宝爬虫)

关于这三个购物网站,今天详细的给大家爬一爬啦!

一、Python采集JDD商品网站数据内容

1)提前准备

运行环境: Python 3.7 解析器 识别代码 ;Pycharm 编辑器 编辑代码 敲代码的工具 

pycharm vscode jupyter sublime 谷歌浏览器 谷歌驱动。

模块使用:  selenium ——pip install selenium==3.141.0 自动化测试 操作浏览器 4版本 和 

3版本 写法上有区别 用法是一样 csv 保存数据 保存csv文件

附:驱动下载地址,安装版本视频等。

 安装python第三方模块: 

1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车 

2. 在pycharm中点击Terminal(终端) 输入安装命令 。

安装失败原因: 

失败: pip 不是内部命令 解决方法: 设置环境变量 。

失败二: 出现大量报红 (read time out) 

 解决方法: 因为是网络链接超时, 需要切换镜像源 

 清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:https://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 华中理工大学:https://pypi.hustunique.com/ 山东理工大学:https://pypi.sdutlinux.org/ 豆瓣:https://pypi.douban.com/simple/ 例如:pip3 install -i https://pypi.doubanio.com/simple/ 模块名 

失败三: cmd里面显示已经安装过了, 或者安装成功了, 但是在pycharm里面还是无法导入 解决

方法: 可能安装了多个python版本 (anaconda 或者 python 安装一个即可) 卸载一个就好 或者

你pycharm里面python解释器没有设置好。

2)实战解析

步骤:打开浏览器---访问Jdd----定位搜索框----输入关键字---点击回车----查看数据。

3)代码实现

"""
# 导入支持浏览器自动化模块
from selenium import webdriver
from selenium.webdriver.common.keys import Keys  # 导入键盘
import time
"""
from xxx import xxx
从哪里导入什么方法模块
import xxx  直接导入pass 占位语句 唯一的作用就是占个位置函数是必须要调用的find_element_by_css_selector是通过css选择器来定位数据
语法 class ='xxx'-->.xxx
text 提取文本
"""
# 1.访问数据的函数
def spider_jd():# webdriver.Chrome(executable_path=浏览器驱动路径)driver = webdriver.Chrome()  # 打开浏览器driver.get('https://www.jd.com/')  # 访问京东input_tag = driver.find_element_by_id('key')  # 定位搜索框# print(input_tag)input_tag.send_keys('笔记本电脑')  # 在搜索框写入关键字input_tag.send_keys(Keys.ENTER)# driver.implicitly_wait(20)  # 等页面加载完之后就会直接运行下一个代码time.sleep(10)  # 等待5s 死等 必须等够10sget_info(driver)  # 调用函数# 2. 查看数据的函数
def get_info(driver):# 名字 价格 链接goods = driver.find_elements_by_class_name('gl-item')  # 查找li标签for good in goods:# 提取商品名字name = good.find_element_by_css_selector('.p-name').text.replace('\n','')# print(name)# 提取商品文本link = good.find_element_by_tag_name('a').get_attribute('href')# print(link)price = good.find_element_by_css_selector('.p-price').text# print(name,link,price)zong = """名称:%s链接:%s价格:%s"""%(name, link, price)print(zong)spider_jd()  # 调用函数

4)效果展示

​二、Python爬虫实战-WP会商品数据

1)提前准备

大部分的环境,模块都是一样的,我就不重复那些安装步骤了哈。

运行环境: Python 3、 Pycharm。模块安装: requests ---> pip install requests csv 内置模块 不需要安装。

如何配置pycharm里面的python解释器? 

 1. 选择file(文件) >>> setting(设置) >>> Project(项目) >>> python interpreter(python解释器) 2. 点击齿轮, 选择add 3. 添加python安装路径pycharm如何安装插件? 1. 选择file(文件) >>> setting(设置) >>> Plugins(插件) 。2. 点击 Marketplace 输入想要安装的插件名字 比如:翻译插件 输入 translation / 汉化插件 输入 Chinese 。3. 选择相应的插件点击 install(安装) 即可 。4. 安装成功之后 是会弹出 重启pycharm的选项 点击确定, 重启即可生效。

2)实现过程

1. 发送请求, 模拟浏览器对url地址发送请求 对于 存储商品ID数据包 url https://mapi.vip.com/vips-mobile/rest/shopping/pc/search/product/rank 。2. 获取数据, 获取服务器返回响应数据 开发者工具: response 。3. 解析数据, 提取我们想要的内容 提取 120个商品ID 。4. 发送请求, 模拟浏览器对url地址发送请求 对于 商品信息存储数据包 发送请求 。https://mapi.vip.com/vips-mobile/rest/shopping/pc/product/module/list/v2 <把商品ID传入进去> 。5. 获取数据, 获取服务器返回响应数据 开发者工具: response <商品基本信息> 。6. 解析数据, 提取我们想要的内容 提取 120个商品基本信息内容 标题 价格 标签 .... 7. 保存数据, 把数据保存表格里面  。

3)代码实现

"""
# 导入数据请求模块
import requests
# 导入格式化输出模块
from pprint import pprint
# 导入csv模块
import csvdef get_shop(shop_id):"""自定义函数:param shop_id: 商品ID:return:"""# 请求商品信息数据包link = 'https://mapi.vip.com/vips-mobile/rest/shopping/pc/product/module/list/v2'params = {# 'callback': 'getMerchandiseDroplets1','app_name': 'shop_pc','app_version': '4.0','warehouse': 'VIP_HZ','fdc_area_id': '104103101','client': 'pc','mobile_platform': '1','province_id': '104103','api_key': 'xxxxx','user_id': '','mars_cid': '1655447722495_62c422a2b0d263186b2d64412108655f','wap_consumer': 'a','productIds': shop_id,'scene': 'search','standby_id': 'nature','extParams': '{"stdSizeVids":"","preheatTipsVer":"3","couponVer":"v2","exclusivePrice":"1","iconSpec":"2x","ic2label":1,"superHot":1,"bigBrand":"1"}','context': '','_': '1667477444740',}json_data = requests.get(url=link, params=params, headers=headers).json()for index in json_data['data']['products']:if 'labels' in list(index.keys()):labels = ','.join([label['value'] for label in index['labels']])else:labels = ''attrs = ','.join([attr['value'] for attr in index['attrs']])# https://www.vipglobal.hk/detail-1710620765-6918063477853790749.htmlhref = f'https://www.vipglobal.hk/detail-{index["brandId"]}-{index["productId"]}.html'dit = {'标题': index['title'],'品牌': index['brandShowName'],'原价': index['price']['marketPrice'],'售价': index['price']['salePrice'],'折扣': index['price']['saleDiscount'],'标签': labels,'属性': attrs,'详情页': href,}csv_writer.writerow(dit)print(dit)f = open('口红.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['标题','品牌','原价','售价','折扣','标签','属性','详情页',
])
csv_writer.writeheader()
"""
1. 发送请求, 模拟浏览器对url地址发送请求- 对于长链接, 可以分段写问号前面 请求链接问号后面 请求参数/查询参数- 批量替换1. 选中替换内容 ctrl + r2. 勾选上 .* 正则3. 通过正则命令匹配数据替换(.*?): (.*)'$1': '$2',- 模拟伪装 headers 请求头 会 1 不会 0在开发者工具里面 Headers 下面 request headers 进行复制粘贴
"""
# 请求 存储商品ID数据包
url = 'https://mapi.vip.com/vips-mobile/rest/shopping/pc/search/product/rank'
# 请求参数
data = {# 'callback': 'getMerchandiseIds','app_name': 'shop_pc','app_version': '4.0','warehouse': 'VIP_HZ','fdc_area_id': '104103101','client': 'pc','mobile_platform': '1','province_id': '104103','api_key': 'xxxxxxxx','user_id': '','mars_cid': '1655447722495_62c422a2b0d263186b2d64412108655f','wap_consumer': 'a','standby_id': 'nature','keyword': '口红','lv3CatIds': '','lv2CatIds': '','lv1CatIds': '','brandStoreSns': '','props': '','priceMin': '','priceMax': '','vipService': '','sort': '0','pageOffset': '0','channelId': '1','gPlatform': 'PC','batchSize': '120','_': '1667477444738',
}
# 模拟浏览器
headers = {# referer 防盗链 告诉服务器请求url地址是从哪里跳转过来的'referer': 'https://category.vip.com/',# user-agent 用户代理, 表示浏览器基本身份信息'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
}
# 发送请求  把python代码伪装成浏览器去发送请求, 从而获取到服务器返回响应数据
response = requests.get(url=url, params=data, headers=headers)
# <Response [200]> 响应对象, 表示请求成功
print(response)
"""
2. 获取数据, 获取服务器返回响应数据当你获取 response.json() json字典数据- simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)原因就是返回数据, 不是完整json数据格式- response.text 获取响应文本数据 ---> 在用re是可以提取数据
3. 解析数据, 提取我们想要的内容提取 120个商品ID解析数据方法: 根据返回数据内容, 选择最方便解析方式
dit = {'键1': '值1', '键2': '值2'}
dit['键1']  ---> '值1'
字典取值方式, 键值对取值, 根据冒号左边的内容[键], 提取冒号右边的内容[值]列表推导式会吗?  会 1 不会 2# print(response.json()['data']['products'])# 创建空列表
products = []
# for 循环把列表里面元素一个一个输出出来  ---> 从一个盒子里面把盒子里面的东西 一个一个拿出来
for i in response.json()['data']['products']:# i 字典# print(i['pid'])# 把提取出来 i['pid'] 商品ID 添加到 products 空列表里面products.append(i['pid'])"""
# 列表推导式  基础语法知识点
products = [product['id'] for product in response.json()['data']['products']]
# 商品ID 分成三组, 前50 中50 后20  列表转字符串  join 把列表合并成字符串
shop_id_1 = ','.join(products[:50])
shop_id_2 = ','.join(products[50:100])
shop_id_3 = ','.join(products[100:])
get_shop(shop_id_1)
get_shop(shop_id_2)
get_shop(shop_id_3)

4)效果展示

采集数据:

保存表格:

​三、 Python爬虫实战-T宝商品数据内容

先使用selenium模块自动打开浏览器登录,然后再爬取商品数据,主要是2块内容。

1)提前准备‘

运行环境:python 3 pycharm 、selenium 模块 3.141.0 操作浏览器 Chromedriver.exe 

 Chrome浏览器。模块安装如前文,环境内容,驱动等前文都提到过的,这里不再重复哈。

2)代码实现

"""
from selenium import webdriver
from selenium.webdriver import ActionChains
import time
from info import PHONE, PASSWORD
import csvf = open('淘宝.csv', mode='a', newline='', encoding='utf-8')
csv_writer = csv.writer(f)
csv_writer.writerow(['title', 'price', 'deal_cnt', 'shopName', 'location', 'link'])
def parse_data():# 取到所有的商品items = driver.find_elements_by_css_selector('#mainsrp-itemlist > div > div .item')for item in items:# 二次提取title = item.find_element_by_css_selector('.row.row-2.title').textprice = item.find_element_by_css_selector('.price').textdeal_cnt = item.find_element_by_css_selector('.deal-cnt').textshopName = item.find_element_by_css_selector('.shopname').textlocation = item.find_element_by_css_selector('.location').text# 属性内容提取方法link = item.find_element_by_css_selector('.pic-link').get_attribute('href')print(title, price, deal_cnt, shopName, location, link)csv_writer.writerow([title, price, deal_cnt, shopName, location, link])options = webdriver.ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-automation'])
# 屏蔽保存密码提示框
prefs = {'credentials_enable_service': False, 'profile.password_manager_enabled': False}
options.add_experimental_option('prefs', prefs)
# 反爬虫特征处理
options.add_argument('--disable-blink-features=AutomationControlled')
url = 'https://login.taobao.com/member/login.jhtml?redirectURL=https%3a%2f%2fs.taobao.com:443/search%2F_____tmd_____%2Fpage%2Flogin_jump%3Frand%3DS3WxGHAgAt756EpznwfNzJq2AFA2qBNla3j6EINUS8We9dazM_iKElp8DwVSHZUevpC41Bx7RzivXIj9RnZgdg%26_lgt_%3D635cd3ca1dff84b838cab2d2d4d18097___215918___cc5b261468f4cc78746cfc89b9c8179c___eaebc79cac1eb5d2f7d8b4595e00ec73155567f2fa11d3fa98d1009a8319d03fe95669dec8ebefd0673824737aba9336f0e031931b9132ad85013eb3be5f87fdfda1ffe6d0052b26010cff24765b937333be60e83f16310c86c494a16dd5d1b16c7f2de620667f2e22d717e3d5c8f4f1ef8b8415db5cc8cb7b25c3032c6b30b5%26x5referer%3Dhttps%253A%252F%252Fs.taobao.com%252Fsearch%253Fspm%253Da21bo.jianhua.201856-fline.5.5af911d9mgYSLf%2526q%253D%2525E7%25259F%2525AD%2525E8%2525A3%2525A4%2526refpid%253D430145_1006%2526source%253Dtbsy%2526style%253Dgrid%2526tab%253Dall%2526pvid%253Dd0f2ec2810bcec0d5a16d5283ce59f69%2526bcoffset%253D0%2526p4ppushleft%253D3%25252C44%2526s%253D44&uuid=635cd3ca1dff84b838cab2d2d4d18097'
# 1. 打开浏览器
driver = webdriver.Chrome(options=options)
# 2. 打开淘宝网
driver.get(url)
# 3. 登陆
# #fm-login-id 定位账号输入框的规则
driver.find_element_by_css_selector('#fm-login-id').send_keys(PHONE)
# #fm-login-password 定位密码输入框的规则
driver.find_element_by_css_selector('#fm-login-password').send_keys(PASSWORD)
try:time.sleep(1)driver.switch_to.frame(0)# 小滑块slider = driver.find_element_by_css_selector('#nc_1_n1z')# 点击小滑块 并且按住 滑块 不动ActionChains(driver).click_and_hold(on_element=slider).perform()# 往x轴水平移动ActionChains(driver).move_by_offset(xoffset=258, yoffset=0).perform()# 暂停0.5秒之后再松开鼠标ActionChains(driver).pause(0.5).release().perform()driver.switch_to.parent_frame()
except:print('没有遇到滑块')
# 点击登陆
driver.find_element_by_css_selectr('#login-form > div.fm-btn > button').click()
time.sleep(1)
for page in range(1, 100):parse_data()main_url = f'https://s.taobao.com/search?spm=a21bo.jianhua.201856-fline.5.5af911d9mgYSLf&q=%E7%9F%AD%E8%A3%A4&refpid=430145_1006&source=tbsy&style=grid&tab=all&pvid=d0f2ec2810bcec0d5a16d5283ce59f69&bcoffset=0&p4ppushleft=3%2C44&s={page * 44}'driver.get(main_url)

)效果展示

​总结

学完三个爬虫实战项目,我们也应认识到:Python在编程领域中十分流行。简直是

“上得厅堂(生活)下得厨房(工作)”,帮助满满!超级赞哦~

块来围观我的csdn圈儿吧,我的经验分享,技术更新,每天都在哦!

下一次更新什么内容呢?大家赶紧来评论吧!

🎯完整的免费源码领取处:找我吖!文末公众hao可自行领取,滴滴我也可!

🔨推荐往期文章——

 项目1.8  Wifi破解免费

Python编程零基础如何逆袭成为爬虫实战高手之《WIFI破解》(甩万能钥匙十条街)爆赞爆赞~

项目1.9  爬虫+数据分析实战:全球疫情最新消息、淘宝爬虫、秒杀脚本

【Python合集系列】爬虫有什么用,网友纷纷给出自己的答案,王老师,我..我想学那个..爬虫。可以嘛?“(代码免费分享)

项目1.0 烟花玫瑰(内含多份源码)

 Python表白代码:“ 星光月夜烟花皆归你,我也归你”(满天烟花盛开、附番外玫瑰)

项目1.1 恋爱指南(内含多份源码)

【Python恋爱指南】二款甜度爆表的小程序出炉—还怕找不到对象嘛?

项目1.0  超级玛丽

程序员自制游戏:超级玛丽100%真实版,能把你玩哭了~【附源码】

项目1.1   扫雷

 Pygame实战:据说这是史上最难扫雷游戏,没有之一,你们感受下......

🎄文章汇总——

汇总合集 Python—2022 |已有文章汇总 | 持续更新,直接看这篇就够了

(更多内容+源码都在✨文章汇总哦!!欢迎阅读喜欢的文章🎉~)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_791456.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oss php sdk+laravel搭建图片处理静态网站

背景和目标 接着上两篇继续写oss php sdklaravel搭建静态网站。 主要说下静态网站的重要部分图片服务&#xff0c;现在很多的网站上都会用到大量的图片, 图片在网页传输中占据很大的数据量, 图片处理也是影响网站性能的重要因素。 这篇文章主要结合oss的图片处理功能介绍如何利…

学习编程有疑问?七个网站助你菜鸟变大牛

很多同学在学习编程时候会遇到各种各样的问题&#xff0c;这些问题需要自己去想办法解决&#xff0c;那么这些网站平台将会给你很大的帮助。 1、W3school 这是一个免费学习编程语言的在线学习网站&#xff0c;里面的知识浅显易懂&#xff0c;非常适合初学者。如果你对编程还不…

前端学习的几个网站

分享一下我老师大神的人工智能教程&#xff01;零基础&#xff0c;通俗易懂&#xff01;http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识&#xff0c;造福人民&#xff0c;实现我们中华民族伟大复兴&#xff01;1.菜鸟教程&#xff1a;http://www.runoob.c…

【云计算的1024种玩法】10分钟轻松设置出 A+ 评分的 HTTP/2 网站

前言 其实 HTTP/2 应该是 2015 年的老话题了&#xff08;2015 年 5 月 14 日 HTTP/2 协议正式版的发布&#xff09;&#xff0c;但是 2018 年都到了很多网站依旧没有使用&#xff0c;作为新一代互联网协议&#xff0c;HTTP/2 不仅速度比目前常见的 HTTP/1.1 更快&#xff0c;而…

如何优化网站,网站推广优化一般流程

理论上针对不同类型的网站&#xff0c;优化网站的策略是不完全相对&#xff0c;但基于搜索引擎网站排名的原理&#xff0c;对于任何一个网站优化流程&#xff0c;都可以参考如下方法&#xff1a; 1、网站架构设计 在做网站信息架构的时候&#xff0c;我们并不单纯的只是简单的罗…

引路蜂Android技术网站开通了

分享一下我老师大神的人工智能教程。零基础&#xff01;通俗易懂&#xff01;风趣幽默&#xff01;还带黄段子&#xff01;希望你也加入到我们人工智能的队伍中来&#xff01;https://blog.csdn.net/jiangjunshow之前在引路蜂技术博客我们花了大量的篇幅介绍了Android开发的相关…

【面试精选】关于大型网站系统架构你不得不懂的10个问题

该文已加入笔主的开源项目——JavaGuide&#xff08;一份涵盖大部分Java程序员所需要掌握的核心知识的文档类项目),地址:https://github.com/Snailclimb/JavaGuide 。觉得不错的话&#xff0c;记得点个Star。下面这些问题都是一线大厂的真实面试问题&#xff0c;不论是对你面试…

网站高并发及高并发架构详解

高并发是指在同一个时间点&#xff0c;有很多用户同时的访问URL地址&#xff0c;比如&#xff1a;淘宝的双11&#xff0c;双12&#xff0c;就会产生高并发,如贴吧的爆吧&#xff0c;就是恶意的高并发请求&#xff0c;也就是DDOS攻击&#xff0c;再屌丝点的说法就像玩撸啊撸被AD…

大型网站技术架构(二)架构模式

2019独角兽企业重金招聘Python工程师标准>>> 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样&#xff0c;你就能一次又一次地使用该方案而不必做重复工作。 所谓网站架构模式即为了解决大型网站面临的高并发访问、海量数据、高可靠…

大型网站技术架构(五)网站高可用架构

2019独角兽企业重金招聘Python工程师标准>>> 网站的可用性&#xff08;Avaliability&#xff09;描述网站可有效访问的特性。 1、网站可用性的度量与考核 网站不可用时间&#xff08;故障时间&#xff09;故障修复时间点-故障发现&#xff08;报告&#xff09;时间点…

大型网站技术架构(一)大型网站架构演化

2019独角兽企业重金招聘Python工程师标准>>> 看完了有一本书&#xff0c;就应该有所收获&#xff0c;有所总结&#xff0c;最近把《大型网站技术架构》一书给看完了&#xff0c;给人的印象实在深刻&#xff0c;再加上之前也搞过书本上讲的反向代理和负载均衡以及ses…

linux 查看机器硬件配置,在linux下如何查看机器硬件配置?_网站服务器运行维护...

在windows中用鼠标选定多个不连续文件的操作是什么_网站服务器运行维护在windows中用鼠标选定多个不连续文件的操作是&#xff1a;首先打开需要选定的文件&#xff1b;然后按住【Ctril】键不放&#xff0c;单击需要的文件&#xff1b;最后出现选中状态即可。在linux下如何查看机…

开源网站分析软件Piwik的数据库表结构

文章引用&#xff1a;【http://www.biaodianfu.com/piwik-database-schema.html】 Piwik是一套基于PhpMySQL技术构建&#xff0c;能够与Google Analytics相媲美的开源网站访问统计系统&#xff0c;前身是phpMyVisites。Piwik可以给你详细的统计信息&#xff0c;比如网页浏览人…

使用最新 solr4.10 快速开发团购网站等垂直搜索网站

说明&#xff1a; solr 是一个非常完善的开源项目&#xff0c;非常优秀&#xff0c;他不紧紧是做个索引这么简单&#xff0c;而是可以做成一个垂直的网站&#xff0c;比如团购网站&#xff0c;快速搭建页面。而且solr带了一个非常优秀的管理后台。可以查看管理&#xff0c;导入…

发现一个国外的学习网站

一个国外的学习网站 udacity.com 优达学成。 免费课程 https://cn.udacity.com/courses/all 全部的课程 里面有不少有意思的课程。 课程是英文的带中文翻译。 还有一个机器学习的课程&#xff0c;感觉好高大上啊。 总结 使用上有点不太方便。 本地化做的还不是很…

javascript ,从mozilla 官方网站学习语法,非常不错

本文的原文连接是: https://blog.csdn.net/freewebsys/article/details/81153733 博主地址是&#xff1a;http://blog.csdn.net/freewebsys 1&#xff0c;关于mozilla 开发者 https://developer.mozilla.org/zh-CN/ 还有这么一个开发者中心呢&#xff0c;上面搜索写JavaScri…

pagespeed insights 上线了,可以通过web进行网站性能分析了

地址&#xff1a; https://developers.google.cn/speed/pagespeed/insights/ 分析下csdn网站&#xff1a; 功能挺多的&#xff0c;还不错。 可以进行参考&#xff0c;然后优化。提高访问速度。

中国大学MOOC(慕课) 一个不错的学习网站

https://www.icourse163.org/category/all 中国大学MOOC是由网易与高教社携手推出的在线教育平台&#xff0c;承接教育部国家精品开放课程任务&#xff0c;向大众提供中国知名高校的MOOC课程。在这里&#xff0c;每一个有意愿提升自己的人都可以免费获得更优质的高等教育。 央…

flutter(4):在linux 下安装flutter 环境,sdk,Android Studio ,从中文镜像网站下载,速度快,安装插件,调整bios使用x86镜像,写个hello world。

目录前言1&#xff0c;关于 flutter2&#xff0c;使用3&#xff0c;启动5&#xff0c;学习视频6&#xff0c;总结前言 相关arduino 全部分类&#xff1a; https://blog.csdn.net/freewebsys/category_8957746.html 本文的原文连接是: https://blog.csdn.net/freewebsys/articl…

图片切换onmouseover 事件

http://www.w3school.com.cn/htmldom/event_onmouseover.asp 定义和用法 onmouseover 时间会在鼠标指针移动到指定的对象上时发生。 语法 οnmοuseοver"SomeJavaScriptCode" 参数描述SomeJavaScriptCode必需。规定该事件发生时执行的 JavaScript。支持该事件的 HTM…