Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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
Web scraping 使用mozenda的站点的刮星率_Web Scraping - Fatal编程技术网

Web scraping 使用mozenda的站点的刮星率

Web scraping 使用mozenda的站点的刮星率,web-scraping,Web Scraping,我想从这个网站上获得星级: 我可以抓取文本,但星率显示为图像。 在其源星率中,通过无线电给出: <div class="gsrReviewLineRating" id="gsrDisplayRating1"> <input class="star" type="radio"id="gsrRating1" name="gsrRating1" value="1" /><input class="star" type="radio" id="gsrRating1" na

我想从这个网站上获得星级:

我可以抓取文本,但星率显示为图像。 在其源星率中,通过无线电给出:

<div class="gsrReviewLineRating" id="gsrDisplayRating1"> <input class="star" type="radio"id="gsrRating1" name="gsrRating1" value="1" /><input class="star" type="radio" id="gsrRating1" name="gsrRating1" value="2" /><input class="star" type="radio" id="gsrRating1" name="gsrRating1" value="3" /><input class="star" type="radio" id="gsrRating1" name="gsrRating1" value="4" /><input class="star" type="radio" id="gsrRating1" name="gsrRating1" value="5" **checked**="checked"/></div>

我试着用mozenda刮,但我不能, 有什么办法刮它吗?
是否有其他用于此目的的软件

您必须从选中的
中绘制
输入

<input ... value="5" **checked**="checked"/>

使用Mozenda可以很容易地做到这一点。如果将下面的XML复制并粘贴到代理中,它将创建捕获星级的操作。要了解如何从多个页面中捕获它,您可以访问此处--


GetElementValue
1.
值=&;QUOTE;%星级%&;引用;
值=“%starrating%”
值=%星级%
值=%Star评级%&;燃气轮机;
占位符
//输入[@name=”gsraveraging“][5]
gsraveraging
gsraveraging
外面的

谢谢,但我不熟悉python,可以在java中使用此代码吗?如果您有一些库来使用html和CSS选择器,那么您可以在其中使用一些信息,比如
'input#gsrAverageRating[checked]”
。java中有
Jython
-python。我从来没用过,但也许你可以用。谢谢,我会试试的。我还有一个问题,如果可能的话,请指导我。我在不同的页面中有这个项目,对于不同的产品,是否可以在左下角的操作列表中为不同的页面和不同的产品编写一个代码,用于刮除文本及其星率。粘贴XML时,Mozenda将其转换为名为Capture-Star Rating的操作。
import requests
import lxml, lxml.html

r = requests.get('http://www.pixel.ir/canon/3071-canon-eos-700d-18-55-is-stm.html')

html = lxml.html.fromstring(r.text)

checked = html.cssselect('input#gsrAverageRating[checked]')

if checked:
    print checked[0].attrib.get('value', None)
else:
    print "No stars"
<!--- - - - - - - - Actions - - - - - - - - -->
<ActionList>
  <Action>
    <ActionType>GetElementValue</ActionType>
    <Page>1</Page>
    <FieldExpression>value=&amp;quot;%Star Rating%&amp;quot;</FieldExpression>
    <FieldExpression>value='%Star Rating%'</FieldExpression>
    <FieldExpression>value=%Star Rating% </FieldExpression>
    <FieldExpression>value=%Star Rating%&amp;gt;</FieldExpression>
    <ItemType>PlaceHolder</ItemType>
    <ItemXPath>//input[@name=&amp;quot;gsrAverageRating&amp;quot;][5]</ItemXPath>
    <ID>gsrAverageRating</ID>
    <Name>gsrAverageRating</Name>
    <FieldValueType>Outer</FieldValueType>
  </Action>
</ActionList>