| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1405 人关注过本帖
标题:惭愧 获取动态网页数据,遇到了401错误。
只看楼主 加入收藏
wanguhssheng
Rank: 2
等 级:论坛游民
威 望:2
帖 子:131
专家分:24
注 册:2016-2-26
结帖率:79.17%
收藏
已结贴  问题点数:20 回复次数:8 
惭愧 获取动态网页数据,遇到了401错误。
URL:
http://dcfm.(x)%2C%22pages%22%3A(tp)%2C%22font%22%3A(font)%7D&filter=(DateType%3D%271%27)(HdDate%3D%272021-08-13%27)

内容是东方财富网上的北上资金持股,不会设置jquery和 token 参数。

代码:
import requests
import random
headers=[{"User-Agent": 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3775.400 QQBrowser/10.6.4209.400'},{"User-Agent":'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36'}]
url = "http://dcfm.
params = {'st': 'ShareSZ_Chg_One', 'sr': -1, 'ps': 50, 'p': 1, 'type': 'HSGT20_GGTJ_SUM'}
response = requests.get(url = url, params = params,headers = random.choice(headers))
结果:
<Response [401]>
response.reason:'Unauthorized'
搜索更多相关主题的帖子: response get js URL 获取 
2021-08-15 08:21
wanguhssheng
Rank: 2
等 级:论坛游民
威 望:2
帖 子:131
专家分:24
注 册:2016-2-26
收藏
得分:0 
网址:
http://data.
页面:
图片附件: 游客没有浏览图片的权限,请 登录注册
2021-08-15 08:45
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4938
专家分:30047
注 册:2008-10-15
收藏
得分:7 
没看懂你要取什么数据。
1楼提供的那个URL用浏览器能打开,返回一堆数据
没找到你所谓的二个参数在什么地方。

如果模拟方式搞不定,如果IE能打开,那能不能用webbrows控件打开网站,然后在里面执行JS代码得到结果值?

授人于鱼,不如授人于渔
早已停用QQ了
2021-08-15 09:31
wanguhssheng
Rank: 2
等 级:论坛游民
威 望:2
帖 子:131
专家分:24
注 册:2016-2-26
收藏
得分:0 
我说的参数就是那个URL中的callback,st,token等等,可能是动态设置的。
2021-08-15 10:04
约定的童话
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:56
帖 子:246
专家分:1442
注 册:2021-8-1
收藏
得分:7 
Sub 汇率()
    Application.ScreenUpdating = False
    Application.ScreenUpdating = False
    Dim i, n, arr, URL As String, brr(1 To 50000, 1 To 7), s As String
    On Error Resume Next
    URL = "www.
    With CreateObject("WinHttp.WinHttpRequest.5.1")
        .Open "GET", URL
        '.setRequestHeader "Referer", "https://www.
        .setRequestHeader "Cookie", "__51uvsct__1vdgOggaFhAurXeU=1; __51vcke__1vdgOggaFhAurXeU=507f496f-d061-57a7-a23b-20450bea5067; __51vuft__1vdgOggaFhAurXeU=1622684861041; __gads=ID=37d95bad6a61f48e-224ecbb625c900e9:T=1622684861:RT=1622684861:S=ALNI_Ma1n87n1NvPa5hlLsO3Ql46ypHj0w; __vtins__1vdgOggaFhAurXeU=%7B%22sid%22%3A%20%228138b132-75c7-53da-bfd1-4e48ab7d76b6%22%2C%20%22vd%22%3A%204%2C%20%22stt%22%3A%20631540%2C%20%22dr%22%3A%20126970%2C%20%22expires%22%3A%201622687292575%2C%20%22ct%22%3A%201622685492575%7D"
        .send
        arr = Split(.responseText, Chr(10))
        Debug.Print .responseText
    End With
    MsgBox "导入完毕!", 64, "提示!"""
End Sub
仅供参考...
2021-08-15 14:57
wanguhssheng
Rank: 2
等 级:论坛游民
威 望:2
帖 子:131
专家分:24
注 册:2016-2-26
收藏
得分:0 
更详细的网址是: http://data.
正在尝试笨办法selenium......
2021-08-15 15:35
wanguhssheng
Rank: 2
等 级:论坛游民
威 望:2
帖 子:131
专家分:24
注 册:2016-2-26
收藏
得分:0 
用selenium解决了,不过还是希望有更好的办法。
2021-08-17 19:08
kings12333
Rank: 2
等 级:论坛游民
帖 子:114
专家分:66
注 册:2012-11-29
收藏
得分:7 
回复 7楼 wanguhssheng
发出来看看……
2021-08-17 20:35
wanguhssheng
Rank: 2
等 级:论坛游民
威 望:2
帖 子:131
专家分:24
注 册:2016-2-26
收藏
得分:0 
我是VFP的老菜鸟,遇到问题总喜欢在这里寻求帮助,主要是因为这里人气旺,一般都有人解答。
下面是python+selenium+IE的解决办法:

from selenium import webdriver
#from selenium.webdriver.support.ui import Select
import time
import sys
import re
import random
from decimal import Decimal
import os
import json
import logging
import datetime
logging.basicConfig(filename='rizhi.txt', level = logging.INFO, format = '%(asctime)s: %(levelname)s:%(message)s')

"""沪深股通获得北上(陆股通)持股列表"""
def getdata():
    gp_dict = {}
    ie = webdriver.Ie()
    ie.implicitly_wait(10)
    ie.set_window_position(-900,10)
    ie.get("http://data.)#东方财富网北上持股
    if not ie.find_element_by_id("dataview_bkcgmx"):
        raise RuntimeError("目标网页没有打开!")

    zong_ye_shu = eval(ie.find_element_by_class_name("pagerbox").find_element_by_xpath(".//a[@target='_self'][last()-1]").get_attribute("innerText"))
    pages = list(range(1,zong_ye_shu + 1))
    random.shuffle(pages)
    while pages:
        ie.find_element_by_id("gotopageindex").clear()
        time.sleep(random.randint(8,18)/10)
        ie.find_element_by_id("gotopageindex").send_keys(pages.pop())
        time.sleep(random.randint(8,18)/10)
        ie.find_element_by_class_name("gotopage").find_element_by_class_name("btn").click()
        time.sleep(random.randint(8,18)/10)

        tr_list = ie.find_element_by_id("dataview_bkcgmx").find_element_by_xpath(".//tbody").find_elements_by_xpath(".//tr")
        
        while tr_list:
            trx = tr_list.pop()
            daima = re.findall("\d{6,10}",trx.get_attribute("innerText"))[0][-6:]
            bili = trx.find_element_by_xpath(".//td[10]").get_attribute("innerText")
            bili = Decimal(re.match("\d{1,2}\.\d\d",bili).group())
            gp_dict[daima] = bili
    ie.quit()
    print(len(gp_dict))
    return gp_dict
2021-08-18 20:25
快速回复:惭愧 获取动态网页数据,遇到了401错误。
数据加载中...
 
   



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

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