我目前正在抓取一些网络信息。 我不知道为什么,但它不能正常工作。 如果有人能纠正我的代码,我将不胜感激。
这只是一个例子,但我在这里要做的是从起始网址,访问其中列出的所有文章,并从每个文章中选取标题和文章。
(所有文章都像<script>
function cancelUploadFile() {
document.getElementById("my_form").reset();
}
</script>
<form id="my_form" method="post" enctype="multipart/form-data">
<div class="w3-grey" style="height:24px;width:0%" hidden
id="progressBar"></div>
<input type="file" id="file1" name="file1">
<input type="submit" value="Upload" onclick="uploadFile()">
<input type="submit" value="Cancel" onclick="cancelUploadFile()">
</form>
)
以下是我的代码。
非常感谢你的帮助!
http://www.bbc.com/sport/tennis/42610656
`
答案 0 :(得分:0)
引用scrapy文档:
编写爬网蜘蛛规则时,请避免使用parse作为回调 CrawlSpider使用parse方法本身来实现其逻辑。 因此,如果您覆盖解析方法,则爬行蜘蛛将不再存在 工作
因此,通过覆盖parse
方法,您可以使您定义的规则无效。
此外,链接提取器中的allow=['.*']
是无操作,因此规则中的follow=True
也没有回调。如果您希望规则同时解析项目并关注链接,只需指定回调并遵循,而不是创建两个规则。
另一个问题是parse
方法本身。其中的xpath是从不存在的div中选择链接(尽管带有该id的部分)。
但是,如果您已经使用CrawlSpider
,则应首先指定适当的规则,而不是覆盖parse
。
最后,我只想指出scrapy.contrib.spiders
和scrapy.contrib.linkextractors
已被弃用;您应该使用scrapy.spiders
和scrapy.linkextractors
代替。