我在试着从trading website上抓取数据。我从python 'requests‘库开始,但它返回的HTML页面与我浏览器上的页面不同。
我观察到网页在加载丢失的信息时有一个很小的延迟,经过研究,我发现这个问题可以使用‘requests html’包来解决。但是,'requests- HTML‘库返回的HTML与'requests’相同。
我知道这可以通过使用selenium来解决,但是有没有办法使用上面提到的库来解决这个问题呢?
这是我的代码
from bs4 import BeautifulSoup
import requests
import time
from requests_html import HTMLSession
with HTMLSession() as s:
login_url = 'https://www.screener.in/login/'
USERNAME = "username"
PASSWORD = "password"
s.get(login_url)
csrftoken = s.cookies['csrftoken']
login_data = dict(csrfmiddlewaretoken=csrftoken, next='', username=USERNAME, password=PASSWORD)
s.post(login_url, data=login_data, headers={"Referer": "https://www.screener.in/"})
r = s.get('https://www.screener.in/company/ABBOTINDIA/')
r.html.render(timeout=10, sleep=10)
print(r.html.html)我哪里错了?标题有什么问题吗?
我是网络抓取的新手,非常感谢你的帮助。
发布于 2021-01-11 18:35:06
csrftoken和csrfmiddlewaretoken是不同的。
csrfmiddlewaretoken需要通过响应数据发送,而csrftoken需要是cookie。
他们也有不同的价值观(至少对我来说)。
https://stackoverflow.com/questions/65626696
复制相似问题