python - 如何使用 python scrapy 抓取 AngularJS 网站?
问题描述
我正在尝试使用 scrapy 从网页中抓取产品信息。这是我的网页
我看到了以下帖子:
还有许多其他人,然后写了以下代码:
import scrapy
from scrapy_splash import SplashRequest
class filmnet_Spider(scrapy.Spider):
name = 'filmnet'
start_urls = {'http://filmnet.ir/'}
DOWNLOADER_MIDDLEWARES = {
'filmnet_Spider.SplashCookiesMiddleware': 723,
'filmnet_Spider.SplashMiddleware': 725,
'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware': 810,
}
SPIDER_MIDDLEWARES = {
'filmnet_Spider.SplashDeduplicateArgsMiddleware': 100,
}
DUPEFILTER_CLASS = 'filmnet_Spider.SplashAwareDupeFilter'
HTTPCACHE_STORAGE = 'filmnet_Spider.SplashAwareFSCacheStorage'
def start_requests(self):
for url in self.start_urls:
yield scrapy.Request(url, self.parse, meta={
'splash': {
'endpoint': 'render.html',
'args': {'wait': 0.5}
}
})
def parse(self, response):
for filmnetscrap in self.start_urls:
poster = filmnetscrap.xpath('//div[@class="verticalImage organizer"]//img/@src').extract()
print poster
我还编写了包含以下内容的设置文件:
SPLASH_URL = ' http://localhost:8050/ '
但它不起作用
解决方案
推荐阅读
- python - 使用 selenium cookie 通过请求下载受保护的内容
- sql - 如何将某些行放在结果集中的特定位置,postgresql
- ruby-on-rails - Rails 应用程序启动延迟,可能是 Docker 问题,但不确定
- python - 如何在别人的 Windows 机器上的虚拟环境中本地运行 python 脚本并使其始终如一地工作?
- mysql - 查找给定工作日的最大出现次数
- firebase - Firebase Cloud Functions:使用存储 putString 上传文件
- python - 如何将重叠范围“联合”到非重叠范围?
- java - 我如何从单词的开头和结尾删除撇号,而不是从单词中删除?
- c# - 使用长度相等的字符串数组,使用 LINQ 获取其自己数组中每个字符串的第 n 个字符
- mysql - Mysql从两个表中选择没有关系