2

我要爬取链接: http ://data.eastmoney.com/hsgt/index.html

但是我发现XHR文档都是没有数据的,只有EventSteam,怎么爬取页面的完整信息。

例如,我想在页面上爬取-94.67。

我的代码如下:

import requests
import pandas as pd
from pyquery import PyQuery
from lxml import etree
import time

response = requests.get(url='http://data.eastmoney.com/hsgt/index.html',
                        headers={'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'})
response.encoding = 'GB2312'

# this shows False
'-94.67' in response.text

然后我尝试安装dryscape但失败了,它说我没有网络服务器文件。

非常感谢您的帮助。

4

1 回答 1

2

正如您提到的,由客户端中运行的 javascript 管理的 XHR 请求没有被执行。这归结于 requests 包不执行 javascript 并且不试图模仿 Web 浏览器的事实。您应该研究另一种方法。有很多。您有很多选择,我建议您阅读以下页面以获取有关该问题的更多背景信息。

而且,另外,也许看看dryscrape 之类的东西。我自己没用过,好像和这个差不多

import dryscrape

sess = dryscrape.Session()
sess.visit('http://data.eastmoney.com/hsgt/index.html')
source = sess.body()

是你所追求的。玩得开心。

于 2020-03-19T14:35:42.600 回答