我在百度里根据某关键字搜索后,在结果列表里找到 CSDN 某篇博客,点击之后,进入博客页面,注意到地址栏里的 url 很长:
https://blog.csdn.net/i042416/article/details/117606987?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168086484016800182795826%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=168086484016800182795826&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_ecpm_v1~rank_v31_ecpm-1-117606987-null-null.blog_rank_default&utm_term=sy-subrc&spm=1018.2226.3001.4450
其中只有 https://blog.csdn.net/i042416/article/details/117606987 是真实的博客地址。
参数 ops_request_misc 是由 CSDN 在向百度发送请求时添加的自定义参数,用于跟踪该请求的相关信息。
具体来说,该参数包含了以下字段:
其他可能的字段:根据需要添加,用于记录一些额外的请求信息。
在该 URL 中,参数 ops_request_misc 还包含了其他两个参数:request_id 和 biz_id,这些参数可能是 CSDN 在自己的后台系统中使用的。在访问博客时,这些参数不会影响实际的页面内容。
具体来说,biz_id 表示该请求所属的业务线的编号,用于在 CSDN 后台系统中进行区分和管理。对于 CSDN 来说,其可能存在多个不同的业务线,如博客、论坛、问答等。因此,使用不同的 biz_id 参数来标识不同的业务线,方便 CSDN 进行后续的数据统计、分析和管理。
在该 URL 中,biz_id 参数的值为 0,可能表示该请求属于 CSDN 的默认业务线,即博客业务线。
具体来说,utm_medium 表示访问来源的媒介类型,即用户通过什么方式进入该网页。通常,utm_medium 可能包含以下值:
organic:表示自然搜索流量,即用户通过搜索引擎搜索并点击结果链接进入该网页。
cpc:表示付费搜索流量,即用户通过广告点击等付费方式进入该网页。
referral:表示转介流量,即用户通过其他网站的链接进入该网页。
email:表示电子邮件流量,即用户通过电子邮件中的链接进入该网页。
social:表示社交媒体流量,即用户通过社交媒体平台中的链接进入该网页。
在该 URL 中,utm_medium 参数的值为 distribute.pc_search_result.none-task-blog-2,可能表示用户通过百度搜索结果页的非任务栏目中的搜索结果链接进入该网页,即该请求的媒介类型为搜索引擎自然搜索流量。
具体来说,utm_term 表示用户在搜索引擎中输入的搜索关键词或短语。通过该参数,可以追踪用户使用哪些关键词或短语搜索到了该网页,并且了解不同关键词或短语带来的流量质量和转化率。
在该 URL 中,utm_term 参数的值为 sy-subrc,可能表示用户在百度搜索时使用了关键词 "sy-subrc" 进行搜索,并通过搜索结果页中的某个链接进入了该网页。需要注意的是,由于该 URL 中的 utm_medium 参数值为 distribute.pc_search_result.none-task-blog-2,表示该请求的媒介类型为搜索引擎自然搜索流量,因此 utm_term 参数的值是在该请求被统计和记录时添加的,而不是用户在访问该网页时携带的参数。
具体来说,spm 参数包含以下几个部分:
第一部分(1018)表示 CSDN 在百度联盟中的 ID,用于标识 CSDN 的广告主身份。
第二部分(2226)表示该请求的页面 ID,用于标识该请求所对应的具体页面。
第三部分(3001)表示该请求所对应的位置 ID,用于标识该请求所处的位置信息。
第四部分(4450)表示该请求的操作类型 ID,用于标识用户的操作行为。
在该 URL 中,spm 参数的值为 1018.2226.3001.4450,可能表示该请求的具体来源、位置和操作等信息。需要注意的是,不同的网站和服务提供商可能使用不同的 spm 参数格式和规则,具体含义和解释可能会有所不同。
exe应该在我打开页面时运行。异步进程需要运行。有什么方法可以在ruby中使用两个参数异步运行exe吗?我已经尝试过ruby命令-system()、exec()但它正在等待过程完成。我需要用参数启动exe,无需等待进程完成是否有任何rubygems会支持我的问题? 最佳答案 您可以使用Process.spawn和Process.wait2:pid=Process.spawn'your.exe','--option'#Later...pid,status=Process.wait2pid您的程序将作为解释器的子进程执行。除
我有一些Ruby代码,如下所示:Something.createdo|x|x.foo=barend我想编写一个测试,它使用double代替block参数x,这样我就可以调用:x_double.should_receive(:foo).with("whatever").这可能吗? 最佳答案 specify'something'dox=doublex.should_receive(:foo=).with("whatever")Something.should_receive(:create).and_yield(x)#callthere
从给定URL下载文件并立即将其上传到AmazonS3的更直接的方法是什么(+将有关文件的一些信息保存到数据库中,例如名称、大小等)?现在,我既不使用Paperclip,也不使用Carrierwave。谢谢 最佳答案 简单明了:require'open-uri'require's3'amazon=S3::Service.new(access_key_id:'KEY',secret_access_key:'KEY')bucket=amazon.buckets.find('image_storage')url='http://www.ex
我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A
是否有类似“RVMuse1”或“RVMuselist[0]”之类的内容而不是键入整个版本号。在任何时候,我们都会看到一个可能包含5个或更多ruby的列表,我们可以轻松地键入一个数字而不是X.X.X。这也有助于rvmgemset。 最佳答案 这在RVM2.0中是可能的=>https://docs.google.com/document/d/1xW9GeEpLOWPcddDg_hOPvK4oeLxJmU3Q5FiCNT7nTAc/edit?usp=sharing-知道链接的任何人都可以发表评论
我正在为一个项目制作一个简单的shell,我希望像在Bash中一样解析参数字符串。foobar"helloworld"fooz应该变成:["foo","bar","helloworld","fooz"]等等。到目前为止,我一直在使用CSV::parse_line,将列分隔符设置为""和.compact输出。问题是我现在必须选择是要支持单引号还是双引号。CSV不支持超过一个分隔符。Python有一个名为shlex的模块:>>>shlex.split("Test'helloworld'foo")['Test','helloworld','foo']>>>shlex.split('Test"
我不确定传递给方法的对象的类型是否正确。我可能会将一个字符串传递给一个只能处理整数的函数。某种运行时保证怎么样?我看不到比以下更好的选择:defsomeFixNumMangler(input)raise"wrongtype:integerrequired"unlessinput.class==FixNumother_stuffend有更好的选择吗? 最佳答案 使用Kernel#Integer在使用之前转换输入的方法。当无法以任何合理的方式将输入转换为整数时,它将引发ArgumentError。defmy_method(number)
两者都可以defsetup(options={})options.reverse_merge:size=>25,:velocity=>10end和defsetup(options={}){:size=>25,:velocity=>10}.merge(options)end在方法的参数中分配默认值。问题是:哪个更好?您更愿意使用哪一个?在性能、代码可读性或其他方面有什么不同吗?编辑:我无意中添加了bang(!)...并不是要询问nobang方法与bang方法之间的区别 最佳答案 我倾向于使用reverse_merge方法:option
我有一个只接受一个参数的方法:defmy_method(number)end如果使用number调用方法,我该如何引发错误??通常,我如何定义方法参数的条件?比如我想在调用的时候报错:my_method(1) 最佳答案 您可以添加guard在函数的开头,如果参数无效则引发异常。例如:defmy_method(number)failArgumentError,"Inputshouldbegreaterthanorequalto2"ifnumbereputse.messageend#=>Inputshouldbegreaterthano
我使用Nokogiri(Rubygem)css搜索寻找某些在我的html里面。看起来Nokogiri的css搜索不喜欢正则表达式。我想切换到Nokogiri的xpath搜索,因为这似乎支持搜索字符串中的正则表达式。如何在xpath搜索中实现下面提到的(伪)css搜索?require'rubygems'require'nokogiri'value=Nokogiri::HTML.parse(ABBlaCD3"HTML_END#my_blockisgivenmy_bl="1"#my_eqcorrespondstothisregexmy_eq="\/[0-9]+\/"#FIXMEThefoll