Python 问财网搜索界面新闻爬取

做学术项目需要使用同花顺问财网的搜索引擎爬取新闻资讯。

网站:http://www.iwencai.com/index?tid=news

(爬取的是旧界面,需要登录后切换)

目前已经成功使用requests进行爬取,但是必须隔一段时间手动上浏览器登录然后复制更换cookie,很费时间,并且网站爬到后面好像有访问限制,越爬越慢。

附上请求相关的代码:

api='http://www.iwencai.com/search/
       
 headers=
            'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', 'Accept-Encoding': 'gzip, deflate', 
            'Accept-Language': 'zh-CN,zh;q=0.9', 
            'Connection': 'keep-alive', 
            'Cookie': Cookie, 
            'Referer': 'http://www.iwencai.com/search/', 
            'Upgrade-Insecure-Requests': '1', 
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'
        
                params=
                    'allow_redirect': 'false',
                    'w': keyword,
                    'tid': 'news',
                    'tr':'5',
                    'sdate':sdate,
                    'edate':edate,
                    'qid': '91a4a343109fdd76c9267bcc31fdc793',
                    'sameInfo': '1',
                    'qid': '91a4a343109fdd76c9267bcc31fdc793',
                    'p': page_num
                
response=requests.get(url=url,params=params,headers=headers,allow_redirects=True)
}

cookie有一些是跟随已登录用户的,有一些是不登陆直接访问也能生成的。尝试过使用selenium裸访问获取cookie再换进已有的cookie里但是失败了。

目前状况是能爬但是非常慢,想请教一下各位这个cookie码怎么破,谢谢!!

  1. 先用postman 测试headers里面那些内容不是必须的。
  2. 分析那些cookie 是浏览器生成的,那些是服务器返回的。
  3. 去分析js当中浏览器生成cookie的生成代码抠出来,然后用PyExecJS 这个包 执行你抠出来的js,生成cookie,放入到请求当中。
    第三步,需要你有很好js基础,还有js逆向能力,不是一天两天能学会的。
    技术不行就本办法凑,可以用selenium + mitmproxy, 用selenium 控制网页滑动发送请求,然后使用mitmproxy 拦截请求,然后解析入库,但是这样就会占用一个电脑无法工作~

这不就是同花顺吗,逆向就行,看我主页文章

用代理能够访问吗?

cookie 可以用requets.session 方法保持。这样不但爬虫的速度更快。安全性也有保证。
session = requests.Session()

如有帮助,请点击我评论上方【采纳该答案】按钮支持一下。

你可以看看这个网站的cookie的方法,既然是动态生成cookie的话,那他应该有js脚本来处理cookie,你可以模仿他的cookie生成方法自己生成cookie,这样到时间以后程序自己会生成新的cookie就不用你自己手动了

首先,爬虫处理这些有风险,注意处理方式。
解决方式的参考思路如下:
1.cookie有过期时间,你需要更新
2.对于更新cookie,你可以做自动登录
3.为了避免反爬,你需要代理
4.为了避免反爬,你需要多个账号

仅此,

可能和浏览器的缓存有关,尝试隔一段时间自动清理缓存试试