使用python登录网站进行抓取

时间:2015-10-12 10:24:48

标签: python beautifulsoup python-requests

我需要从网站获取遗传途径的链接。首先我需要登录,但遇到了麻烦。我对刮刮的经验很少,所以任何指针或一般指导如何'有关这方面的信息将非常感谢,并提供准确的答案。

with

不幸的是,它似乎没有让我登录。我得到了:

import requests
from bs4 import BeautifulSoup
URL = 'http://www.broadinstitute.org/gsea/msigdb/genesets.jsp?collection=CP:BIOCARTA'
session1 = requests.Session()
params = {'login':'my_email'}
session2 = session1.post(URL, data=params)

pathways_links = []

for link in soup.find('div', attrs={'id':'wrapper'}).find(
    'div', attrs={'id':'contentwrapper'}).find(
        'div', attrs={'id':'content_navs'}).find(
            'table', attrs={'id':'geneSetTable'}).find('a')['href']:
    pathways_links.append(link)
    print link

如果我要求它在' content_navs'之前打印链接div然后我得到:

'div', attrs={'id':'content_navs'}).find(
 AttributeError: 'NoneType' object has no attribute 'find'

任何解决方案都将非常感激。感谢。

1 个答案:

答案 0 :(得分:0)

您需要先在if (val.ToCharArray().All(p => Char.IsDigit(p)) && val.Length >= 4 && val.Length <= 10)登录,然后转到其他位置。

第一步,是创建一个会话对象;这将保留cookie和其他会话详细信息。接下来,您需要登录,然后最终将内容传递给BeautifulSoup:

http://www.broadinstitute.org/gsea/login.jsp