【发布时间】:2023-04-09 07:26:01
【问题描述】:
我想爬取这个网站https://hamariweb.com/news/newscategory.aspx?cat=3。代码工作正常,但它只能从第一页连续抓取数据。 这是我的代码
import scrapy
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from scrapy import Spider, Request
from scrapy import signals
from scrapy.http import HtmlResponse
import time
import os
class WebnewsSpider(scrapy.Spider):
name = 'webnews'
allowed_domains = ['www.hamariweb.com']
start_urls = ['https://hamariweb.com/news/newscategory.aspx?cat=3']
def __init__ (self):
options = webdriver.ChromeOptions()
options.add_argument("--start-maximized")
self.driver=webdriver.Chrome("C://Users//hammad//Downloads//
chromedriver",chrome_options=options)
def parse(self, response):
self.driver.get(response.url)
pause_time = 1
last_height = self.driver.execute_script("return
document.body.scrollHeight")
#start = datetime.datetime.now()
for i in range(10):
self.driver.execute_script("window.scrollTo(0, document.body.scrollHeight + 400);")
time.sleep(pause_time)
url2=response.xpath('.//*[@class="news_img"]/a/@href').extract()
print("\n\n\n",url2,"\n\n\n")
new_height = self.driver.execute_script("return document.body.scrollHeight")
self.driver.close()
#print("\n\n",len(l))
【问题讨论】:
-
代码在哪里?除非你说你的代码进入下一页,否则它将如何解析下一页
-
手动使用 Scrapy 和 Selenium 很容易出错。强烈建议使用像 github.com/clemfromspace/scrapy-selenium 这样的集成包。完全不使用 Selenium 会更好:docs.scrapy.org/en/latest/topics/dynamic-content.html
标签: python selenium web-scraping scrapy