网页抓取请求 python
Posted
技术标签:
【中文标题】网页抓取请求 python【英文标题】:Web scraping requests python 【发布时间】:2022-01-18 08:30:55 【问题描述】:大家早上好,我正在尝试访问网页的 html 代码,我已经通过 python 登录,但只有在我打印页面后,html 代码不像我打开它那样完整在浏览器中...
loginurl = ('https://sgv.ivu-cloud.com/mbweb/j_security_check')
secure_url = ('https://sgv.ivu-cloud.com/mbweb/main/matter/desktop/main-menu')
session = HTMLSession()
payload =
'j_username' : creds.username,
'j_password': creds.password
s = requests.Session()
s.post(loginurl, data=payload)
r = s.get((secure_url), cookies='from-my': 'browser')
soup = BeautifulSoup(r.content, 'html.parser')
c = session.get('https://sgv.ivu-cloud.com/mbweb/main/matter/desktop/main-menu#duty-details?beginDate=2021-12-14&allocatedEmployeeId=22480')
d = s.get('https://sgv.ivu-cloud.com/mbweb/main/matter/desktop/main-menu#duty-details?beginDate=2021-12-14&allocatedEmployeeId=22480')
print(d)
这是答案:
IVU.plan 门户 var mbwebBaseUrl = '/mbweb'; <script type="text/javascript" src="/mbweb/struts/js/base/jquery-2.2.4.min.js"></script>
<script type="text/javascript" src="/mbweb/struts/js/base/jquery-ui.min.js?s2j=4.0.3"></script>
<script type="text/javascript"
src="/mbweb/struts/i18n/datepicker-de.min.js?s2j=4.0.3"></script>
$(函数()
jQuery.struts2_jquery.version = "4.0.3";
jQuery.struts2_jquery.loadAtOnce = true;
jQuery.scriptPath = "/mbweb/struts/";
jQuery.struts2_jquery.local = "de";
jQuery.struts2_jquery.gridLocal = "de";
jQuery.struts2_jquery.timeLocal = "de";
jQuery.struts2_jquery.datatablesLocal = "de";
jQuery.ajaxSettings.traditional = true;
jQuery.ajaxSetup(
缓存:假
);
jQuery.struts2_jquery.require("js/struts2/jquery.ui.struts2.min.js?s2j=4.0.3");
);
<link id="jquery_theme_link" rel="stylesheet"
href="/mbweb/struts/themes/smoothness/jquery-ui.css?s2j=4.0.3"
type="text/css"/>
600
【问题讨论】:
你可以使用硒。该网站正在使用 js 作为页面内容。因此,为了加载页面,您可以使用 selenium。它还将帮助您获取页面 HTML。 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。 【参考方案1】:您可以使用您的代码登录并获取 cookie。 然后您可以将 cookie 传递给 selenium 并继续
from selenium import webdriver
driver = webdriver.Firefox(executable_path="driver/geckodriver.exe")
for c in s.cookies:
driver.add_cookie('name': c.name, 'value': c.value)
driver.get('https://sgv.ivu-cloud.com/mbweb/main/matter/desktop/main-menu#duty-details?beginDate=2021-12-14&allocatedEmployeeId=22480')
这仅在您首先使用您的代码登录时才有效,因此需要在最后将其添加到您的代码中
【讨论】:
我必须更改字符串中的值吗? (driver.add_cookie('name': c.name, 'value': c.value)),如果我按照您编写的代码执行代码,我会收到此错误:arserError: Line | 1 | driver.add_cookie('name': c.name, 'value': c.value) | ~ |表达式或语句中出现意外的标记“:”。以上是关于网页抓取请求 python的主要内容,如果未能解决你的问题,请参考以下文章