Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.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_Mechanize - Fatal编程技术网

Python 单击具有特定名称的图像

Python 单击具有特定名称的图像,python,mechanize,Python,Mechanize,如何使用Python mechanize单击下面这样的图像 <a href="..."><img name="next" id="next" src="..."></a> 我知道要单击的图像的名称和id。我需要以某种方式识别父链接并单击它。我该怎么办 奖金问题:我如何检查是否有这样的图像?对于您的奖金问题,我想说您可以使用BeautifulSoup检查img元素是否有效。您可以使用urllib查看映像是否存在(至少,服务器是否会将其传递给您-否则您将返回

如何使用Python mechanize单击下面这样的图像

<a href="..."><img name="next" id="next" src="..."></a>

我知道要单击的图像的名称和id。我需要以某种方式识别父链接并单击它。我该怎么办


奖金问题:我如何检查是否有这样的图像?

对于您的奖金问题,我想说您可以使用BeautifulSoup检查img元素是否有效。您可以使用urllib查看映像是否存在(至少,服务器是否会将其传递给您-否则您将返回一个错误)


您还可以查看比我更聪明的人的回答-它似乎讨论了一个名为SpiderMonkey的库以及mechanize无法单击按钮。

对于您的额外问题-我想说您可以使用BeautifulSoup来检查img元素是否工作。您可以使用urllib查看映像是否存在(至少,服务器是否会将其传递给您-否则您将返回一个错误)


您还可以查看比我更聪明的人的回答-它似乎讨论了一个名为SpiderMonkey的库以及mechanize无法单击按钮。

嗯,我不知道如何使用mechanize,但是我知道如何使用
lxml

假设我们的网页有以下代码:
。使用
lxml
我们将编写以下代码:

from lxml import html
page = urlllib2.urlopen('http://example.com')
tree = html.fromstring(page.read())
link = tree.xpath('//img[@id="next"]/ancestor::a/attribute::href')
大部分魔法发生在
tree.xpath
函数中,在该函数中,您首先使用
//img[@id=“next”]
定义要查找的图像,然后您指定您正在查找它前面的
a
标记:
/concenter::a
,并且您正在专门查找
href
属性:
/attribute::href
。link变量现在将包含与该查询匹配的字符串列表-在本例中,链接[0]将是
page2.html
-您可以
urlopen()
,从而有效地单击它

对于
//img[@id=“next”]
部分,您可以使用其他属性,例如:
//img[@name=“bla bla”]
,它将非常好地工作。您只需要考虑哪个属性更适合这种情况


我知道这个答案没有使用Mechanize,但是我希望它是一个有用的指针。祝你好运

嗯,我不知道如何使用Mechanize,但是我知道如何使用
lxml

假设我们的网页有以下代码:
。使用
lxml
我们将编写以下代码:

from lxml import html
page = urlllib2.urlopen('http://example.com')
tree = html.fromstring(page.read())
link = tree.xpath('//img[@id="next"]/ancestor::a/attribute::href')
大部分魔法发生在
tree.xpath
函数中,在该函数中,您首先使用
//img[@id=“next”]
定义要查找的图像,然后您指定您正在查找它前面的
a
标记:
/concenter::a
,并且您正在专门查找
href
属性:
/attribute::href
。link变量现在将包含与该查询匹配的字符串列表-在本例中,链接[0]将是
page2.html
-您可以
urlopen()
,从而有效地单击它

对于
//img[@id=“next”]
部分,您可以使用其他属性,例如:
//img[@name=“bla bla”]
,它将非常好地工作。您只需要考虑哪个属性更适合这种情况


我知道这个答案没有使用Mechanize,但是我希望它是一个有用的指针。祝你好运

使用bs4(beautifulsoup 4)非常简单,而不是使用mechanize

使用bs4检索父标记非常容易,因为在找到标记后,使用
find_all
函数查找父标记是非常容易的。由于
find_all
函数返回一个数组,因此最好在img:以后执行
,但这可能不适用于您的网站,这样做是安全的。见下文


编辑:我修改了代码,加入了“奖金问题”,这是我在上面描述的另一种选择。

使用bs4(beautifulsoup 4)非常简单,而不是使用mechanize

使用bs4检索父标记非常容易,因为在找到标记后,使用
find_all
函数查找父标记是非常容易的。由于
find_all
函数返回一个数组,因此最好在img:
以后执行
,但这可能不适用于您的网站,这样做是安全的。见下文


编辑:我已将代码更改为包含“奖金问题”,这是我上面描述的另一种选择。

图像放置在哪里?在网站上,在GUI上还是第三个地方?@Bill在网站上。那么我帮不了你,因为我不知道python如何处理web:-)试着看看这个:图像放在哪里?在网站上,在GUI上还是在第三个地方?@Bill在网站上。那么我帮不了你,因为我不知道python如何使用web:-)请尝试浏览以下内容: