java解析地址参数_百度URL参数解析

百度URL参数解析

在用Python爬取百度搜索的内容时,发现百度搜索的url非常的长,往往会跟一大段的参数,但其实很多参数都是没有必要的,如同样是搜索java关键字,可以通过 http://www.baidu.com/s?wd=java 如此简单的URL来获取,而下面这个超级复杂的URL也是同样进行了关键字java的搜索:

http://www.baidu.com/s?wd=java&rsv_spt=1&rsv_iqid=0xd3c8c51900052eb3&issp=1&f=8

&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&oq=python%20org&inputT=801

&rsv_t=8810tNAXi7Yc2PivScHthQ7bBz%2B4eIBHvrdmB59u%2FlLVYrhnyyTg1%2FYJzQM9EAEgSPn5

&rsv_pq=8f0a85f900051202&rsv_sug3=15&rsv_sug2=0&rsv_sug7=000&rsv_sug4=801&rsv_sug=2

那么后面的那么多的参数有什么用呢?

wd

查询关键字,就是你要搜索的内容。

rn

搜索结果页每页显示的数目,默认为10,最大可以设置为50

pn

显示结果的页数,缺省为0,其它页面需要每页递增rn,如当rn为默认值时,第三页的pn应为20。

ie

查询关键字的编码格式,默认为gb2312,即为简体中文

tn

提交的搜索请求的来源,我们经常可以看到很多网站上都有嵌入了百度的搜索框,这个参数可以确定当前的搜索是来自哪个网站的。如下面的URL就是通过www.hao123.com网站首页的百度搜索框搜索得到的:

https://www.baidu.com/s?word=java&tn=sitehao123&ie=utf-8

注:我们可以看到很多参数其实都是缩写,如wd用word也是可以的

rsv_bp

这是表示了是百度网页上的哪一个搜索框,如通过百度首页中间的搜索框进行搜索时,该值为0,在搜索结果页上面的搜索框进行搜索时为1。

rsv_spt

这个参数具体含义不是很清楚,经过测试可以看出来登录了百度账号且在首页进行搜索时会有这个参数,且值为1,如果没有登录或登录后在搜索结果页搜索时不会出现这个参数。网上查找了一些资料,感觉比较靠谱的是这表示首页搜索类型,1表示新版百度首页搜索(先要登录百度帐号),2表示百度实时热点搜索(先要登录百度帐号),3表示传统百度首页搜索。

cl

这个参数是提交的搜索类型,如搜索网页时为3,搜索新闻时为2

oq

这个关键词网上有些帖子说是搜索下拉栏相关的,但根据我的测试,这个参数现在好像就仅仅代表上次的搜索关键字。

还有很多参数如rsv_**这些参数的意义不是很明确,此外上面的参数测试可能也不是很全面,理解可能也有偏差,如有错误,欢迎交流。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
pg_dump是PostgreSQL数据库备份工具,它可以将一个 PostgreSQL 数据库的结构和数据以 SQL 脚本或二进制格式存储到文件中。如果想要使用Java解析pg_dump的文件,可以通过以下步骤实现: 1. 读取pg_dump文件:使用Java IO中的FileReader和BufferedReader读取pg_dump文件中的内容。 2. 解析pg_dump文件:pg_dump文件中的内容包含了数据库的结构和数据信息,可以使用Java正则表达式或者字符串分割的方式解析pg_dump文件中的内容,提取出所需的数据。 3. 将解析出的数据存储到数据库中:使用Java JDBC连接到PostgreSQL数据库,将解析出的数据写入到数据库中。 以下是示例代码: ```java import java.io.BufferedReader; import java.io.FileReader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class PgDumpParser { public static void main(String[] args) { String filename = "backup.sql"; // pg_dump备份文件名 String url = "jdbc:postgresql://localhost:5432/mydb"; // 数据库连接URL String user = "postgres"; // 数据库用户名 String password = "password"; // 数据库密码 try (Connection conn = DriverManager.getConnection(url, user, password); BufferedReader br = new BufferedReader(new FileReader(filename))) { String line; StringBuilder sb = new StringBuilder(); while ((line = br.readLine()) != null) { // 解析pg_dump文件,提取出所需的数据 if (line.startsWith("INSERT INTO")) { sb.append(line); if (line.endsWith(";")) { String sql = sb.toString(); // 将解析出的数据存储到数据库中 try (PreparedStatement pstmt = conn.prepareStatement(sql)) { pstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } sb.setLength(0); } } } } catch (Exception e) { e.printStackTrace(); } } } ``` 以上代码仅作为示例,实际使用时需要根据pg_dump文件的结构和数据格式进行相应的解析和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值