我试图创建一个蜘蛛,而不指定特定的url。我想要创建蜘蛛对象,从对象中提取url,用它作为我的allowed_domains和start_urls --换句话说,我想做类似的事情(注意,MySpiderObj...I只是把这个表达式放在那里,因为我想从类MySpider的对象中提取信息。
from scrapy.settings import default_settings
from selenium import webdriver
from urlparse import urlparse
import csv
from scrapy.contrib.spiders impor
我正在使用Scrapy爬行一个网站。我正在从页面中提取5个项目。以下是我的档案
items.py
class ParseItem(scrapy.Item):
a = scrapy.Field()
b = scrapy.Field()
c = scrapy.Field()
d = scrapy.Field()
e = scrapy.Field()
我正在解析蜘蛛目录中的数据,这是我使用的函数。
parser.py
def parse_page(self, response):
item = ParseItem()
item['a
我有一个包含许多URL的文件。我愿意从这些网址中提取链接,然后提取不同页面的标题和metas。
我想知道有多少URL可以提供给Scrapy爬虫,这样我就可以得到适当的结果。我不知道Scrapy是否会对URL扫描和从URL中提取链接有任何限制。如何随机化提取的链接?
le = LinkExtractor()
for link in le.extract_links(response):
yield scrapy.Request(link.url, callback=self.parse_inof)
请参见上面的代码。我用它来从URL中提取链接。我怎么能做到这一点?
我遵循教程学习刮痕,但我有一个非常奇怪的问题。它提取url start_urls并将其放置在data.json中。下面是我使用的代码:
import scrapy
from scrapy.contrib.spiders import Rule
from scrapy.contrib.linkextractors import LinkExtractor
class ArticleItem(scrapy.Item):
url = scrapy.Field()
class ScholarSpider(scrapy.Spider):
name = "scholar"
我正在使用抓取广泛爬行,并有以下要求:
刮除会刮掉网址;
Scrapy将解析来自URL的响应,并将解析的结果写入文件中,比如file1.json,当且仅当file1.json的大小小于2GB时。否则,Scrapy将创建一个新文件,比如file2.json,并编写对这个新文件的响应;
返回响应后,Scrapy将从响应中提取URL并跟踪提取的响应。然后从第2点开始。
下面是我的代码,我能够执行步骤1&步骤3,但不知道应该把creating the new file、checking the size和writing the response的逻辑放在哪里。
def pa
因此,我尝试使用CrawlSpider并理解中的以下示例:
import scrapy
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
class MySpider(CrawlSpider):
name = 'example.com'
allowed_domains = ['example.com']
start_urls = ['http://www.example.com']
r
我想在这个网站上提取数据:,我正在学习python,以及如何使用Scrapy,我的问题是:为什么我不能用Xpath检索数据?
当我在浏览器中测试Xpath时,我的xpath看起来很好,它会返回正确的值。(谷歌Chrome)
import re
from scrapy import Spider
from scrapy.selector import Selector
from stack.items import StackItem
class StackSpider(Spider):
name = "stack"
allowed_domains = ["poke
如果只列出了一个url,下面的代码就像它应该的那样提取数据。如果我输入两个url (如下所示),它只会从第一个url中提取数据-但会提取两次!你知道怎么克服这个问题吗?请注意,我删除了一些选择器以缩短代码。 import scrapy
from scrapy_selenium import SeleniumRequest
from selenium import webdriver
class Spider(scrapy.Spider):
name = "match_summary"
def start_requests(self):
ur
这段代码 import requests
url = 'https://docs.scrapy.org/en/latest/_static/selectors-sample1.html'
response = requests.get(url) 获取一个requests.models.Response实例,我可以从其中使用scrapy提取数据 from scrapy import Selector
sel = Selector(response=response)
sel.xpath('//div') A post gives a great访问网站的方式。这
我正在使用Scrapy来收集一些数据,除了电子邮件提取部分之外,一切都很好。由于某些原因,.csv文件中的电子邮件行是空的,或者只有少数几封电子邮件被提取。我尝试过限制download_delay和CLOSESPIDER_ITEMCOUNT,但是它不起作用。任何帮助都是非常感谢的。
import re
import scrapy
class DmozItem(scrapy.Item):
# define the fields for your item here like:
link = scrapy.Field()
attr = scrapy.Field()
我正在使用scrapy来收集一些数据,我需要在提取电子邮件时延迟代码。所以不是整个代码,而是只有当它到达电子邮件提取部分时。任何帮助都是非常感谢的。
import re
import scrapy
from scrapy.http import Request
# item class included here
class DmozItem(scrapy.Item):
# define the fields for your item here like:
link = scrapy.Field()
attr = scrapy.Field()
title
我正在学习如何使用scrappy,我想从这个中提取一些youtube视频链接。我写了这个脚本来提取链接从网站到一个json文件。
import scrapy
class getVideos(scrapy.Spider):
name = 'wbScraper'
start_urls = ['https://research.google.com/audioset///eval/baby_cry_infant_cry.html']
def parse(self, response):
for url in response.
因此,我创建了一个蜘蛛在刮刮,现在成功地针对所有我想要的文本。
如何在另一个python文件中执行这个蜘蛛?因为我希望能够传递给它新的URL/将它找到的数据存储在字典中,然后存储在一个dataframe中。
因为目前我只能用终端命令'scrapy爬行SpiderName‘运行它。
from scrapy.spiders import Spider
from scrapy_splash import SplashRequest
class SpiderName(Spider):
name = 'SpiderName'
Page = 'https