【发布时间】:2016-11-26 02:05:14
【问题描述】:
我想问一下如何从this site点击下一步按钮(更改网站的页码)(然后再爬到页码末尾)如何?
我尝试将 scrape 与 selenium 结合使用,但仍然出现错误并显示 "line 22
self.driver = webdriver.Firefox()
^
IndentationError: expected an indented block"
我不知道为什么会这样,我觉得我的代码很好。有人可以解决这个问题吗?
这是我的来源:
from selenium import webdriver
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from now.items import NowItem
class MySpider(BaseSpider):
name = "nowhere"
allowed_domains = ["n0where.net"]
start_urls = ["https://n0where.net/"]
def parse(self, response):
for article in response.css('.loop-panel'):
item = NowItem()
item['title'] = article.css('.article-title::text').extract_first()
item['link'] = article.css('.loop-panel>a::attr(href)').extract_first()
item['body'] ='' .join(article.css('.excerpt p::text').extract()).strip()
#item['date'] = article.css('[itemprop="datePublished"]::attr(content)').extract_first()
yield item
def __init__(self):
self.driver = webdriver.Firefox()
def parse2(self, response):
self.driver.get(response.url)
while True:
next = self.driver.find_element_by_xpath('/html/body/div[4]/div[3]/div/div/div/div/div[1]/div/div[6]/div/a[8]/span')
try:
next.click()
# get the data and write it to scrapy items
except:
break
self.driver.close()`
【问题讨论】:
-
您的代码缩进不足,第 5 行之后的所有内容都必须缩进 4 个空格,因为该代码属于您的类。
-
啊,python有规定吗? -_- 我不知道,在此之前我使用 java 或 c# 进行编码,并且两者都没有这样的规则,它似乎有很大的不同......顺便说一句,我所有的代码看起来都很好,可以运行..但是在我添加第 19 行和更多错误之后,我不知道为什么要配合(在 mozilla 驱动程序之后)...
-
是的,python 中的缩进很重要,这就是你定义范围的方式,因为没有花括号等。老实说,你应该在任何编程语言中进行适当的缩进,无论是否使用花括号......
-
这里的队友,我的代码...它似乎可以自动添加 4 个空格,但我不知道为什么当我在这里复制粘贴它时它会自动变成左对齐 -_- 顺便说一句,你有解决方案吗我面临什么问题?
-
在图片上看到,我重新上传我的源图片伙伴..
标签: python selenium scrapy web-crawler