python - 使用 selenium 获取不同的抓取结果,仅获取加载文本
问题描述
我尝试在稍后添加一些分页之前刮掉(例如)这个页面。但即使是 1 页,我也没有得到我想要的结果。这是我的代码(我使用的是scrapy和selenium):
from scrapy import Spider
from selenium import webdriver
from scrapy.selector import Selector
from scrapy.http import Request
from quotes_spider.items import QuotesSpiderItem
class PutusanSelSpider(Spider):
name = 'putusan_sel'
allowed_domains = ['engine.ddtc.co.id']
start_urls = ['https://perpajakan.ddtc.co.id/putusan-pengadilan-pajak/read/put-108430-162013ppm-xivb-tahun-2019']
def __init__(self):
self.driver = webdriver.Chrome('./chromedriver')
def parse(self, response):
self.driver.get(response.url)
item = QuotesSpiderItem()
trans_table= {ord(c): None for c in u'\r\n\t\xa0'}
item['content'] = ' '.join(s.translate(trans_table) for s in response.xpath('//*[@id="nocompare-wrapper-pp"]//text()').extract())
return item
self.driver.close()
从我上面的代码中,我只得到了结果:
{'content': ' MEMUAT... '}
它没有显示我想要的任何内容(例如此页面中显示的内容)。看起来它只有“加载”文本。但是当我尝试在命令提示符下直接使用 ipython 时,我得到了我想要的结果。这是我的 ipython 代码:
from selenium import webdriver
from scrapy.selector import Selector
driver = webdriver.Chrome('./chromedriver')
driver.get('https://perpajakan.ddtc.co.id/putusan-pengadilan-pajak/read/put-108430-162013ppm-xivb-tahun-2019')
sel = Selector(text=driver.page_source)
trans_table = {ord(c): None for c in u'\r\n\t\xa0'}
item = ' '.join(s.translate(trans_table) for s in sel.xpath('//*[@id="nocompare-wrapper-pp"]//text()').extract())
当我打印该项目时,我得到了我想要的一切。
我的第一个代码有什么问题吗?
解决方案
推荐阅读
- javascript - 点击添加视频描述
- artifactory - XRay 使用自签名证书失败
- python - 将数据注册到 json 时出现问题仅注册数字而不是字符串
- javascript - Firebase action.payload 返回 id,但数据未定义
- python - Python在输出每个结果之前打印csv列值而不重复
- ios - 以编程方式自定义 UITabBar 不规则形状
- flutter - 将横向图像转换为肖像(旋转图像)并保存 - Flutter
- settings - Envoy 设置短链接
- css - 表未使用 Tailwind CSS
- javascript - 在 Gatsbyjs 中显示 PDF 文件