动态内容表单的Scrapy

2024-10-01 00:14:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用scrapy撕掉一些需要认证的网站。 我读到使用formdata是可能的,但是我当前面临的问题是每次刷新登录页面时都会随机生成输入名。在

以下是html代码:

<input type="text" name="MemberNameb326ccc51594e4" id="MemberNameb326ccc51594e4" size="15" maxlength="20" value="" tabindex="1">

我该怎么处理?在


Tags: 代码textnameidinputsizevalue网站
2条回答

也许使用python Beautifulsoup4模块会更好,一旦完成html soup,就可以使用re模块来查找相应的id,如下所示:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import requests
import re
from bs4 import BeautifulSoup
#get the url page content
html = request.get("http://mysite.url/toscrap").content
#soup the html content
soup = BeautifulSoup(html)
#find all inputs containing "MemberName" in id field
my_inputs = soup.findAll("input",{"id":re.compile("MemberName")})

这将满足您的需要,它提供任何输入字段,其中id包含“MemberName

问候

您不能使用输入名称,因为它是动态的,例如,您可以通过获取它的周围元素来获取该输入的引用

<div id="static-id"><input type="text" name="MemberNameb326ccc51594e4" id="MemberNameb326ccc51594e4" size="15" maxlength="20" value="" tabindex="1"></div>

一旦有了周围的容器,就可以获得该输入的名称

相关问题 更多 >