标题:网页数据抓取状态代码问题
只看楼主
igaoyuan
Rank: 2
等 级:论坛游民
帖 子:84
专家分:49
注 册:2022-12-19
结帖率:100%
已结贴  问题点数:20 回复次数:5 
网页数据抓取状态代码问题
学习网页数据抓取,天眼查https://www.这个网站有些难度(还有类似https://aiqicha.baidu.com/)

1、输入关键词“华为”,获取请求 URL: https://www.,状态代码显示200


2、代码
程序代码:
CLEAR 
lcWb = '华为'    &&keywords    
lcWb1 = STRCONV(STRCONV(lcWb, 9), 15)
* 转换为UTF8编码
lcUTF8 = ""
FOR ln = 1 TO LEN(lcWb1) STEP 2
    lcUTF8 = lcUTF8 + "%" + SUBSTR(lcWb1, ln, 2)
ENDFOR
myurl = 'https://www.'  &&"https://aiqicha.baidu.com/s?q=&lcUTF8"

oHTTP = CREATEOBJECT("MSXML2.ServerXMLHTTP") 
oHTTP.Open("GET", myurl, .F.)
OHTTP.SETREQUESTHEADER("Content-Type", "application/x-www-form-urlencoded")
lcSend = "erectDate=&nothing=&pjname=" + lcUTF8 + "&head=head_620.js&bottom=bottom_591.js"

oHTTP.Send(lcSend)
? oHTTP.Status
IF oHTTP.Status = 200
    lcStr = oHTTP.ResponseText                           &&网页内容存入lcstr
    STRTOFILE(lcStr,'D:\ex.txt')                               &&调试语句:将下载的网页存为D:\ex.txt
ENDIF 


3、实际状态代码返回418

4、网址搜索后自动挂上一段变化码&sessionNo=1674728807.71143526,与此有关吗?
https://www.
搜索更多相关主题的帖子: https 代码 com 状态 网页 
2023-01-26 18:43
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:20 
试试
程序代码:
CLEAR 
lcWb = '华为'    &&keywords    
lcWb1 = STRCONV(STRCONV(lcWb, 9), 15)
* 转换为UTF8编码
lcUTF8 = ""
FOR ln = 1 TO LEN(lcWb1) STEP 2
    lcUTF8 = lcUTF8 + "%" + SUBSTR(lcWb1, ln, 2)
ENDFOR
myurl = 'https://www.' + lcUTF8  &&"https://aiqicha.baidu.com/s?q=&lcUTF8"

oHTTP = CREATEOBJECT("MSXML2.XMLHTTP") 
oHTTP.Open("GET", myurl, .F.)
*OHTTP.SETREQUESTHEADER("Content-Type", "application/x-www-form-urlencoded")
*lcSend = "erectDate=&nothing=&pjname=" + lcUTF8 + "&head=head_620.js&bottom=bottom_591.js"

oHTTP.Send()
? oHTTP.Status
IF oHTTP.Status = 200
    lcStr = oHTTP.ResponseText                           &&网页内容存入lcstr
    STRTOFILE(lcStr,'D:\ex.txt')     &&调试语句:将下载的网页存为D:\ex.txt
    MODIFY FILE D:\ex.txt
ENDIF 

坚守VFP最后的阵地
2023-01-26 19:14
igaoyuan
Rank: 2
等 级:论坛游民
帖 子:84
专家分:49
注 册:2022-12-19
得分:0 

厉害厉害!果然行!!果然行!!!

有个疑问:
myurla = 'https://www.' + lcUTF8
myurlb = 'https://www.'
?myurla
?myurlb
字符串结果是一样的,但是结论却不一样,啥原因?
2023-01-26 19:57
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
有可能是Cookie问题
2023-01-26 20:08
igaoyuan
Rank: 2
等 级:论坛游民
帖 子:84
专家分:49
注 册:2022-12-19
得分:0 
如果查询关键字使用数字或英文(如搜索huawei),两种方式都可行,中文可能比较特殊,虽然字符串一致...
2023-01-26 20:34
igaoyuan
Rank: 2
等 级:论坛游民
帖 子:84
专家分:49
注 册:2022-12-19
得分:0 
回复 2楼 sdta
感谢!感谢!!
2023-01-26 21:36



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-511161-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.108934 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved