Scrapy与动态内容形式

时间:2016-11-28 15:07:37

标签: python scrapy

我想使用scrapy来破解一些需要身份验证的网站。 我通过使用formdata读到这是可能的,但我目前面临的问题是每次刷新登录页面时都会随机生成输入名称。

这是html代码:

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

我该如何处理?

2 个答案:

答案 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的任何输入字段来满足您的需求

此致