使用python进行网页登录和抓取

时间:2017-02-28 18:23:01

标签: python login web-scraping ide

我是Python新手,编码经验有限。最近我想从网站上抓一些信息,并建议Python是一种很好用的语言。我尝试在线搜索并找到关于此问题的几篇帖子,但无法成功运行他们的示例代码。我认为其中一些是由不同版本的Python,缺少软件包,我错误地使用Python IDE,或者我在安装时没有管理员帐户引起的,但我无法识别它们。

我要做的是:

  1. 登录某个网站

  2. 重定向到另一个网页后,我想点击某个按钮(比如使用鼠标),然后会出现一个新窗口

  3. 在新窗口中,在执行某些操作后,会有一个按钮将结果打印为pdf文件

  4. 下载文件。

  5. 我的问题是

    1. 您能否就哪个版本更适合上述工作,2或3给我一些建议?我使用的是3,但很多帖子建议使用像scrapy这样的软件包,我听说它现在可用于3。

    2. 对于易于使用且足够工作的新用户,您会推荐哪种IDE?我尝试过Anaconda Navigator,但对它提供的三件事情感到困惑(jupyter notebook,qtconsile和spyder)。我应该使用第一个吗?我还尝试了Atom并使用其脚本包来运行Python代码。我对Python软件包安装部分感到困惑。我尝试在cmd中使用“pip”,但我不确定它是否成功,因为我没有管理员帐户。

    3. 你能给我一个示例代码或指向我,可以在上面的环境中成功运行吗?关于“登录网站”的许多示例都使用网站example.org,但它没有登录功能。

    4. 提前感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

使用python和selenium模块很容易解决这个问题。我试着回答你的问题。

1.-总是在2.7上,版本3还可以,但许多附加模块在这方面不起作用所以总是使用流行的。

Python 2.7.5 (default, Oct 11 2015, 17:47:16) 
[GCC 4.8.3 20140911 (Red Hat 4.8.3-9)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

2.-为什么你需要一个ide?对于编程,终端仅需要文本编辑器。只有当你想制作一个大型项目时才使用ide。

 [hkeyland@localhost Escritorio]$ python testa.py

3.-首先需要安装我的示例所需的所有模块(selenium)。阅读如何通过pip安装模块或下载zip并安装

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys

######################################## 
"""USER AUTH"""
username="user"
password="password"
########################################

########################################
"""LOGIN"""
driver = webdriver.Firefox()
driver.set_window_size(1024,800)
driver.get("https://www_hackthissite_org/missions/prog/2/index.php")
element = driver.find_element_by_name('username')
element.send_keys(username)
element2 = driver.find_element_by_name("password")
element2.send_keys(password)
element3 = driver.find_element_by_name("btn_submit")
element3.click()
########################################

答案 1 :(得分:0)

没问题,您可以编辑文件并使用.py扩展名保存或将扩展名txt更改为py而不会出现问题。

在terminal put

中运行脚本
[hkeyland@localhost Escritorio]$   python your_script_name.py

并自动执行。