Какие HTML-теги следует прочитать, если я хочу получить содержимое таблиц на этом веб-сайте (просмотр веб-страниц) - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь прочитать содержимое этой веб-страницы: http://cdn.ime.co.ir (На самом деле это веб-сайт фондового рынка, и мне нравится читать цены / объемы и такое содержимое каждой таблицы, которая относится к конкретной акции).Но не знаете, какие теги HTML я должен читать?Когда я вижу исходный код страниц, я вижу содержимое таблиц, таких как "حجم" или "قیمت", но не могу найти соответствующие значения?Я использую Beautifulsoup и Python на Windows 10.

Ответы [ 2 ]

3 голосов
/ 10 мая 2019

Похоже, что вы можете имитировать запрос POST и передать код контракта, например,

import requests

data = {'ContractCode' : 'OSFKH98'}
r = requests.post('http://cdn.ime.co.ir/Services/Fut_Live_Loc_Service.asmx/GetContractInfo', json = data ).json()
print(r)

Вы можете сделать цикл, например:

import requests

codes = ['OSFKH98', 'OSFOR98','OSFTR98', 'SAFKH98','SAFOR98','SAFTR98']

with requests.Session() as s:
    for code in codes:
        data = {'ContractCode' : code}
        r = s.post('http://cdn.ime.co.ir/Services/Fut_Live_Loc_Service.asmx/GetContractInfo', json = data ).json()
        print(r)

Пример r:

https://jsoneditoronline.org/?id=ec913bbb31164500900780c129e971f4

1 голос
/ 10 мая 2019

У всех таблиц есть класс DataGridStyle и строки с содержимым Contents, поэтому, если вы хотите, чтобы все содержимое таблицы содержало td внутри всех этих tr, то будет выполнен обход с table.DataGridStyle tr.Contents > td.

Вы всегда можете попробовать это с консолью javascript, используя ...


const tds = document.querySelectorAll('table.DataGridStyle tr.Contents > td')

// The, per every td you would use the property `innerText`
// to get only the text with no HTML at all. For instance:
console.log(tds[5].innerText)
// "۱۳۴,۱۰۰"

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...