Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 关于如何从本网站中获取数据的建议_Python_Selenium - Fatal编程技术网

Python 关于如何从本网站中获取数据的建议

Python 关于如何从本网站中获取数据的建议,python,selenium,Python,Selenium,我想就如何从这个网站刮取数据一些建议 我从selenium开始,但一开始就被卡住了,因为,例如,我不知道如何设置日期 我的代码到现在为止: from bs4 import BeautifulSoup as soup from openpyxl import load_workbook from openpyxl.styles import PatternFill, Font from selenium import webdriver from selenium.webdriver.common

我想就如何从这个网站刮取数据一些建议

我从selenium开始,但一开始就被卡住了,因为,例如,我不知道如何设置日期

我的代码到现在为止:

from bs4 import BeautifulSoup as soup
from openpyxl import load_workbook
from openpyxl.styles import PatternFill, Font
from selenium import webdriver
from selenium.webdriver.common.by import By
import datetime
import os
import time
import re

day = datetime.date.today().day
month = datetime.date.today().month
year = datetime.date.today().year
my_url = 'https://www.eex-transparency.com/homepage/power/germany/production/availability/non-usability-by-unit/non-usability-history'
cookieValue = '12-c12-cached|from:' +str(year)+ '-' +str(month)+ '-' +str(day-5)+ ','+'to:' +str(year)+ '-' +str(month)+ '-' + str(day) +',dateType:1,company:PreussenElektra,fuel:uranium,canceled:0,durationComparator:ge,durationValue:5,durationUnit:day'
#saving url
browser = webdriver.Chrome(executable_path=r"C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
my_url = 'https://www.eex-transparency.com/homepage/power/germany/production/availability/non-usability-by-unit'
browser.add_cookie({'name': 'tem', 'value': cookieValue})
browser.get(my_url)
my_url = 'https://www.eex-transparency.com/homepage/power/germany/production/availability/non-usability-by-unit/non-usability-history'
browser.get(my_url)
显然,我不是在要求代码,只是一些关于如何继续使用Selenium(如何设置日期和其他数据)的建议,或者任何关于如何刮取的想法

提前谢谢


编辑:我正在尝试遵循cookie的方式。这是我更新的代码,我读到在加载页面之前需要创建cookie,我也这么做了,你知道它为什么不工作吗?

你决定使用selenium而不是其他web抓取工具(scrapy、urllib等)有什么特别的原因吗?我个人没有使用Selenium,但我使用了其他一些工具。下面是一个脚本示例,用于从页面中提取所有html

import urllib
import urllib2
from bs4 import BeautifulSoup as soup

link = "https://ubuntu.com"
page = urllib2.urlopen(link)
data = soup(page, 'html.parser')

print (data)
这只是一个简短的脚本,用于从页面中提取所有HTML。我相信BeautifulSoup有额外的工具来将数据输入到字段中,但是我现在忘记了确切的方法,如果我能在上面找到我的笔记,我会编辑这篇文章。不过,我记得这很简单

祝你好运


编辑:这里有一个讨论,我不久前在reddit上保存了web抓取工具,对您来说最好的方法是更改cookie,因为每个过滤器数据都保存在cookie中

检查chrome
(f12->应用程序->cookies)
中的cookies,并使用过滤器。如果要在程序员工具中更改,则必须刷新网站:)

要从网站中获取价值,您必须像这里一样使用经典方法,但您必须使用类:

radio = browser.find_elements_by_class_name('aaaaaa')

您可以始终使用xPath搜索元素(chrome将为您生成这些元素)

此id
infected\u date
表示两个元素。1.报告所述期间2。要设置日期,需要遍历div和其中的表。就这样。我不知道你在问什么。请说得更具体些。谢谢我不知道如何与日历交互。我试图将日期设置为文本,但它不起作用。@DavideRavera这听起来像是一个错误。编辑您的问题并询问实际问题,而不是寻求帮助解决问题。你想做什么?我想修改日历中的开始日期和结束日期,但我想问更一般的问题,因为可能有一个更简单的方法。例如,我在另一种情况下开始使用selenium,最后使用了json,这实际上要快得多。我已经使用了urllib,但是如果我没有错的话,我无法与输入表单交互,如果它们没有包含在页面链接中,我只能拉出html并查看它。之前的文章提供了一些关于如何输入的好信息进入表单[.我查看了页面,似乎没有任何东西是“inspect元素”无法处理的酷,我会研究它为什么我要寻找值?我会用cookie打开页面,然后下载html并取出表格?对吗?不?我用cookies编辑了问题。你能看一下吗?是的,你可以下载整个html,然后用regex获取值。我的cookie从:,没有
c-12
。在下载html之前,请尝试给予60秒的等待时间。因为此网站有一个奇怪的加载表过程。但我看到的是,它查找实际数据的速度更快(例如,相同的cookie,但时间段为2018/4/2-2018/7/11).我应该设定60秒的睡眠时间还是10秒左右就可以了?