Асинхронный обход запросов с использованием Python - PullRequest
2 голосов
/ 19 марта 2020

Я хочу сканировать ссылку: 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, но не получилось, он сказал, что у меня нет файла веб-сервера.

Большое спасибо за помощь.

1 Ответ

2 голосов
/ 19 марта 2020

Как вы упоминаете, запросы XHR, управляемые javascript, выполняющимися на клиенте, не выполняются. Это связано с тем, что пакет запросов не выполняет javascript и не пытается имитировать c веб-браузер. Вы должны изучить альтернативный подход. Их довольно много. У вас есть много вариантов, и я бы посоветовал вам прочитать страницы типа на следующем , чтобы получить больше информации о проблеме.

И, кроме того, возможно, посмотрите на что-то вроде dryscrape . Я сам этим не пользовался, похоже, что-то похожее на это

import dryscrape

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

- это то, что вы ищете. Веселитесь.

...