草庐IT

python - 将额外的值连同 url 一起传递给 scrapy spider

我有一个形式为(id,url)的元组列表我需要从URL列表中抓取产品,当这些产品被抓取时,我需要将它们存储在数据库中的ID下。问题是我无法理解如何将id传递给解析函数,以便我可以将抓取的项目存储在它们的id下。 最佳答案 在start_requests()中初始化开始url并在meta中传递id:classMySpider(Spider):mapping=[(1,'my_url1'),(2,'my_url2')]...defstart_requests(self):forid,urlinself.mapping:yieldReque

python - 使用Scrapy爬取公共(public)FTP服务器

如何让Scrapy爬取不需要用户名和密码的FTP服务器?我试过将url添加到起始url,但Scrapy需要用户名和密码才能访问FTP。我已经重写了start_requests()以提供默认请求(当我使用Linux的ftp命令尝试时,用户名“anonymous”和空白密码有效),但我现在从服务器获得550个响应。使用Scrapy爬取FTP服务器的正确方法是什么-理想情况下是一种适用于所有不需要用户名或密码访问的FTP服务器的方法? 最佳答案 没有文档,但Scrapy内置了这个功能。有一个FTPDownloadHandler它使用twi

python - Scrapy start_urls

Thescript(下)来自this教程包含两个start_urls。fromscrapy.spiderimportSpiderfromscrapy.selectorimportSelectorfromdirbot.itemsimportWebsiteclassDmozSpider(Spider):name="dmoz"allowed_domains=["dmoz.org"]start_urls=["http://www.dmoz.org/Computers/Programming/Languages/Python/Books/","http://www.dmoz.org/Comput

python - 将 selenium 响应 url 传递给 scrapy

我正在学习Python并试图抓取这个page用于下拉菜单中的特定值。之后,我需要单击结果表中的每个项目以检索特定信息。我能够选择该项目并检索网络驱动程序上的信息。但是我不知道如何将响应url传递给crawlspider。driver=webdriver.Firefox()driver.get('http://www.cppcc.gov.cn/CMS/icms/project1/cppcc/wylibary/wjWeiYuanList.jsp')more_btn=WebDriverWait(driver,20).until(EC.visibility_of_element_located

python - 垃圾。开始爬行后如何更改蜘蛛设置?

我无法在解析方法中更改蜘蛛设置。但这绝对是一种方式。例如:classSomeSpider(BaseSpider):name='mySpider'allowed_domains=['example.com']start_urls=['http://example.com']settings.overrides['ITEM_PIPELINES']=['myproject.pipelines.FirstPipeline']printsettings['ITEM_PIPELINES'][0]#printed'myproject.pipelines.FirstPipeline'defparse(

python - 从 Flask 运行 Scrapy

我有这个文件夹结构:app.py#flaskappapp/datafoo/scrapy.cfgcrawler.pyblogs/pipelines.pysettings.pymiddlewares.pyitems.pyspiders/allmusic_feed.pyallmusic_data/delicate_tracks.jlscrapy.cfg:[settings]default=blogs.settingsallmusic_feed.py:classAllMusicDelicateTracks(scrapy.Spider):#oneamongstmanyspidersname="a

python - 在 win 7(64 位)上安装 scrapy

我正在尝试为python2.6安装scrapy,但似乎不太顺利。这是安装的包:G:\Python26\Scripts>pipfreezeScrapy==0.16.4Twisted==12.3.0libxml2-python==2.7.7lxml==2.3.6pyopenssl==0.13w3lib==1.2zope.interface==3.8.0我还有iconv和zlib。这是用pip安装scrapy时的日志。我不知道下一步该做什么,我错过了什么吗?需要说明,谢谢。win764位,已安装VisualC++C:\Users\d>pipinstallscrapyDownloading/u

python - 如何递归地使用Beautiful Soup(python)从网站获取所有链接

我希望能够递归地从网站获取所有链接,然后跟踪这些链接并从这些网站获取所有链接。深度应为5-10,以便它返回它找到的所有链接的数组。最好使用漂亮的汤/python。谢谢!到目前为止,我已经尝试过了,但没有用....任何帮助将不胜感激。fromBeautifulSoupimportBeautifulSoupimporturllib2defgetLinks(url):if(len(url)==0):return[url]else:files=[]page=urllib2.urlopen(url)soup=BeautifulSoup(page.read())universities=soup.

python - 如何重启Scrapy spider

我需要什么:启动爬虫爬虫工作完成等一分钟再次启动爬虫我试试这个:fromscrapy.crawlerimportCrawlerProcessfromscrapy.utils.projectimportget_project_settingsfromtimeimportsleepwhileTrue:process=CrawlerProcess(get_project_settings())process.crawl('spider_name')process.start()sleep(60)但是报错:twisted.internet.error.ReactorNotRestartable

python - 使用 BeautifulSoup 获取文档 DOCTYPE

我刚刚开始修补scrapy连同BeautifulSoup我想知道我是否遗漏了一些非常明显的东西,但我似乎无法弄清楚如何从生成的soup对象中获取返回的html文档的文档类型。给定以下html:HTML5DemosandExamplesThisisparagraphoneThisisparagraphtwo.谁能告诉我是否有办法使用BeautifulSoup从中提取声明的文档类型? 最佳答案 BeautifulSoup4有一个用于DOCTYPE声明的类,因此您可以使用它来提取顶层的所有声明(尽管您无疑希望有一个或没有!)defdoct