怎么爬取 window.open 中打开的网页,参数用 escape 包了

2018-03-01 11:38:33 +08:00
 ytf513
例如网址: http://hr.bjx.com.cn/SearchResult.aspx

params = {'keyWord': input_str, 'function2': '', 'function1': '','class1': '', 'class2': '', 'workprovince': '', 'record': 0, 'workTime': 0,'chkabove': '', 'page': i}
r=requests.get('http://hr.bjx.com.cn/SearchResult.aspx',headers=headers_input,params=params,timeout=5) #params=params 时会出错
r.encoding = r.apparent_encoding #从内容分析出的响应内容编码方式
resp_text=r.text

如果 ·input_str· 为中文则搜索失败,为英文是 OK 的。
2075 次点击
所在节点    Python
3 条回复
nanxung
2018-03-01 17:21:48 +08:00
看了下你的问题,中文可参考下面代码


import requests
headers_input={
"user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36"
}
k=str("运维".encode('unicode-escape'))
k=k.replace("\\\\","%")
print(k)
u="http://hr.bjx.com.cn/SearchResult.aspx?keyword={}&function1=&function2=&class1=&class2=&record=0&workTime=0&workprovince=&chkabove=".format(k)
params = {'keyWord': k.upper(), 'function2': '', 'function1': '','class1': '', 'class2': '', 'workprovince': '', 'record': 0, 'workTime': 0,'chkabove': '', 'page': 1}
r=requests.get(u,headers=headers_input,timeout=5) #params=params 时会出错
r.encoding = r.apparent_encoding #从内容分析出的响应内容编码方式
resp_text=r.text
print(r.text)
ytf513
2018-03-06 20:11:24 +08:00
谢谢,我 用 Python 2,还有问题。正在解决中
ytf513
2018-03-06 20:33:02 +08:00
@nanxung 测试了下,好像也没起效,并没有出现现有查询的关键字,而是抓取到了查询主页的内容

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/433830

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX