我对scrapy/selenium是新手。我想从网站上抓取所有论文标题https://thewebconf.org/www2019/accepted-papers/. 我认为这只是一个静态html页面,因为当我“查看页面源代码”时,所有内容都显示在源页面中。我的代码如下。
class Spider_WWW19(scrapy.Spider):
name = "www19"
start_urls = [
'https://thewebconf.org/www2019/accepted-papers/'
]
def __init__(self):
# add chrome driver to win10 PATH
self.driver = webdriver.Chrome()
def parse(self, response):
self.driver.get(response.url)
WebDriverWait(self.driver, 10).until(
EC.presence_of_element_located((By.XPATH, "//li//p[contains(@class, 'name')]"))
)
selenium_response_text = self.driver.page_source
hxs = Selector(text=selenium_response_text)
articles = hxs.xpath("//li//p[contains(@class, 'name')]/text()")
for article in articles:
yield {
'title': article.text.strip(),
'year': '2020',
'conf': 'WWW',
'conf_long': 'International World Wide Web Conference'
}
但我有问题。
通过使用从scrapy获取,输出html为空。 scrapy fetch https://thewebconf.org/www2019/accepted-papers/ > out.html
通过使用不含selenium的scrapy,就没有输出,代码也就完成了。
通过使用selenium,生成的浏览器不会导航到https://thewebconf.org/www2019/accepted-papers/ 或者别的什么。刚刚关门。
谢谢你的帮助。
1条答案
按热度按时间0wi1tuuw1#
找到解决方案:robotstxt_obey=false