更新了开发中遇到的一些小问题
好文,观点都赞同
当然可以的,引入 webpack 和 yarn,复杂的部分只是在于开发和构建上,结果出来都是在页面引用 JS 而已。只要处理好 assets pipeline 和 pack 出来的静态文件引用顺序,两者是可以并存的。
另外,打开 webpacker 的源码,找到 javascript_pack_tag, 实际上也是调用了 javascript_include_tag
def javascript_pack_tag(name, **options)
javascript_include_tag(Webpacker::Manifest.lookup("#{name}#{compute_asset_extname(name, type: :javascript)}"), **options) #从生成出来的manifest.json找到对应静态文件编译后的文件名
end
```
```json
//manifest.json example
{
"app.js": "/packs/app-c34667aca39442f786a0.js",
"application.js": "/packs/application-912810e12140b29375d2.js",
"page/Actor.js": "/packs/page/Actor-81e43cb17759d171104e.js",
"page/Actors.js": "/packs/page/Actors-638afba3889927791378.js",
"page/Movie.js": "/packs/page/Movie-c4cdf69886b211c14574.js",
"page/Movies.js": "/packs/page/Movies-f04878a089ecec487810.js",
"page/Search.js": "/packs/page/Search-f02e3e7031931ef876b9.js",
"page/Tag.js": "/packs/page/Tag-75d6da5528f200354587.js",
"page/Tags.js": "/packs/page/Tags-8aa0b6c7cc811618c51f.js",
"router/index.js": "/packs/router/index-10afda1a26fd89c89880.js",
"store/action_types.js": "/packs/store/action_types-aa75ce66ee2e3a622d51.js",
"store/index.js": "/packs/store/index-5389b0582084ca0e4751.js",
"store/module/actor.js": "/packs/store/module/actor-b67a50e248408fa8fa6a.js",
"store/module/movie.js": "/packs/store/module/movie-20441ad04b207c3337cc.js",
"store/module/search.js": "/packs/store/module/search-c7cae47a3a1058a7a6b5.js",
"store/module/tag.js": "/packs/store/module/tag-8952d2f3ce45bf2fd3f7.js",
"store/mutation_types.js": "/packs/store/mutation_types-e74d876aaaabbe43d43f.js"
}
所以 webpack 的静态文件要使用 turbolink,在页面里这样用就行
<%= javascript_pack_tag "application", :"data-turbolinks-track" => true %>
可以的,原来的 assets pipeline 还在
@ghjcumt2008 scrapy is awesome!
@afly IP 限制,比较常见是一段时间内同一 IP 访问次数限制,另外有些资源还会有一些更复杂的登录令牌与 IP 绑定的限制,这个与资源方的风险防范机制有关。理论上,爬虫越能模拟到真实用户行为,越难防范,落实到爬虫的实现,就是各种细节上的调节。如你所说大量的手机号是有必要的,我们的其中一个项目就是开了一堆手机号和买了一堆低配红米,做到了控制短信,还有更新登录信息到服务器,还有在 Android 利用辅助权限上做一些模拟行为操作 。另外代理的话就比较好理解了,做成一个代理 IP 池,一个 IP 被封了另一个 IP 再上,本质就是需要很多可用的 IP 代理。免费的话可以爬各大代理网站提供的免费代理:
这里有个好玩的就是他们也有一定的防范机制,鸡生蛋生鸡 ,比较奇葩的是 goubanjia 进去是等一会儿才会变出真正的端口...
第二种方法就是购买他们的收费代理。有了一堆 IP 后,我们的做法是搭一个专门的小服务,小服务会提供接口,把代理 IP 拿去 test target,另外也有接口返回一堆可用的 IP。
当然了,如果还是感觉代理质量不太好的话(延迟、大量不可用),土豪的话可以买一堆低配的云 IP 服务器,可以找些切换 IP 比较快的服务(阿里云好像有)。最后我们还想了个方案,就是把家里空余的宽带资源也可以提供出来,用树莓派做个远程控制,IP 被封了就重新上线获取新的 IP,不过这个方案还没用到(上面两个已经够用了)...
LS 说的都玩过,公司其中一个业务就要用到爬虫,自己的个人项目不少也要用到爬虫。遇到的问题有:动态加载 (分析 JS 代码、Selenium2 大杀器)、IP 限制 (挂各种代理 [免费收费]、甚至树莓派控制 ADSL 路由重启获取动态 IP...)、用户登录 (网页的/ APP API 加密破解),语言用过 Python/Ruby/Nodejs。现在一些简单网页解析爬虫就用 js 写因为可以很快 (cheerio jquery like),复杂一些要做任务调度的就 Python 或 Ruby,团队里也有大牛用 Elixir,膜拜膜拜
沧蓝大大,从里屋一直追随你的步伐努力中
@alphaliu 这两天穿上了,质量也就过得去,挺暖和的
收到了,挺暖的,就是不知道大广州什么时候有机会穿
赵老师,要 Ruby 的吗
统一回答一下众同学,招聘依然继续,请直接发简历
object 作数组这个很实用!
#14 楼 @color_huo 你猜猜^_^
推荐了不少好用的插件!
ember 做的 http://javavav.com
3 年过去了,现在大家对 cache 使用 redis-store 还是 memcached 是怎么选择的呢?
入镜了。。鼎力支持
自己团队,支持一下
更新一下,Rails 开发工程师已招到一人 还需要:Rails 工程师/1 人; Web 前端工程师 1 人;
感谢大家的支持!
@saiga 感谢你的建议!期待你的简历!
干货贴,pg 应该会逐步完善对异步的支持
回广州罗~参加参加!
苍蓝大大推荐,入了~
朝九晩五全力做的话大概 3 天吧(响应式,前端 mvc)
Android 上多看买,ipad 上看
#58 楼 @qichunren 刘行