我想使用scrapy来破解一些需要身份验证的网站。 我通过使用formdata读到这是可能的,但我目前面临的问题是每次刷新登录页面时都会随机生成输入名称。
这是html代码:
<input type="text" name="MemberNameb326ccc51594e4" id="MemberNameb326ccc51594e4" size="15" maxlength="20" value="" tabindex="1">
我该如何处理?
答案 0 :(得分:0)
你不能使用输入名称,因为它是动态的,你可以通过获取它的周围元素来获得该输入的引用,例如
<div id="static-id"><input type="text" name="MemberNameb326ccc51594e4" id="MemberNameb326ccc51594e4" size="15" maxlength="20" value="" tabindex="1"></div>
一旦你拥有了那个周围的容器,就可以得到那个输入的名称
答案 1 :(得分:0)
使用python Beautifulsoup4模块可能会更好,一旦html汤完成,你可以使用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")})
通过为您提供包含“ MemberName ”的ID的任何输入字段来满足您的需求
此致