- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我从 ebay 获取商品 url 的代码,即 link3:
def url_soup(url):
source=(urllib2.urlopen(url)).read()
soup=BeautifulSoup(source)
link=soup.select('a.ListItemLink')
for links in link:
link3=('http://www.ebay.com/'+'%s') % (links['href'])
Dept={"All Departments":"0","Apparel":"5438","Auto":"91083","Baby":"5427","Beauty":"1085666",
"Books":"3920","Electronics":"3944","Gifts":"1094765","Grocery":"976759","Health":"976760",
"Home":"4044","Home Improvement":"1072864","Jwelery":"3891","Movies":"4096","Music":"4104",
"Party":"2637","Patio":"5428","Pets":"5440","Pharmacy":"5431","Photo Center":"5426",
"Sports":"4125","Toys":"4171","Video Games":"2636"}
def gen_url(keyword,domain):
if domain in Dept.keys():
main_url=('http://www.ebay.com/search/search-ng.do?search_query='+'%s'+'&ic=16_0&Find=Find&search_constraint='+'%s') % (keyword,Dept.get(domain))
url_soup(main_url)
gen_url('Bags','Apparel')
现在我希望我的蜘蛛每次都选择 start_urls
作为 link3
。附言我是 scrapy 的新手!!
最佳答案
你需要定义start_requests()
动态定义蜘蛛开始的 url 的方法。
例如,你应该有这样的东西:
from scrapy.http import Request
from scrapy.selector import Selector
from scrapy.spider import BaseSpider
class MySpider(BaseSpider):
name = "my_spider"
domains = ['Auto']
departments = {"All Departments": "0", "Apparel": "5438", "Auto": "91083", "Baby": "5427", "Beauty": "1085666",
"Books": "3920", "Electronics": "3944", "Gifts": "1094765", "Grocery": "976759", "Health": "976760",
"Home": "4044", "Home Improvement": "1072864", "Jwelery": "3891", "Movies": "4096", "Music": "4104",
"Party": "2637", "Patio": "5428", "Pets": "5440", "Pharmacy": "5431", "Photo Center": "5426",
"Sports": "4125", "Toys": "4171", "Video Games": "2636"}
keyword = 'Auto'
allowed_domains = ['ebay.com']
def start_requests(self):
for domain in self.domains:
if domain in self.departments:
url = 'http://www.ebay.com/search/search-ng.do?search_query=%s&ic=16_0&Find=Find&search_constraint=%s' % (self.keyword, self.departments.get(domain))
print "YIELDING"
yield Request(url)
def parse(self, response):
print "IN PARSE"
sel = Selector(response)
links = sel.select('//a[@class="ListItemLink"]/@href')
for link in links:
href = link.extract()[0]
yield Request('http://www.ebay.com/' + href, self.parse_data)
def parse_data(self, response):
# do your actual crawling here
print "IN PARSE DATA"
希望对您有所帮助。
关于python - 如何让 start_urls 在 scrapy 中获取另一个 python 函数生成的 url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22807236/
尝试产生“数字”或者可能获取start_url,然后解析start_url以获取数字: class EbaypriceSpider(Spider): name = "ebayprice"
我正在创建一个与服务人员脱机工作的 PWA。 现在它可以正常工作,但 Lighthouse Audit 存在问题。 当我运行 Lighthouse 时,在 PWA 部分我遇到了这个问题: 离线时 st
我正在尝试抓取网址并检索每个网址的h1。 url 存储在文本文件中。代码是: class MySpider(CrawlSpider): name = "sitemaplocation"
The script (下)来自 this教程包含两个 start_urls。 from scrapy.spider import Spider from scrapy.selector import
我一直在使用 Google 的 workbox library现在有一段时间,在非常基本的水平上。大部分效果很好,但由于某些原因,我的 manifest.json 中的 start_url 未在初始页
我刚刚将 scrapy 更新到 0.22,现在面临一些问题。 我使用的是基本的 Spider,只是想请求一个 start_url 并在 parse(self,response) 函数中查看结果。 cl
我想知道我可以分配给蜘蛛的 start_urls 的数量是否有限制?据我搜索,似乎没有关于列表限制的文档。 目前我已经设置了我的爬虫,以便从 csv 文件中读取 start_urls 列表。 url
我有一个工作的 scrapy 蜘蛛,我可以通过一个单独的脚本运行它,然后是 example here .我还为我的脚本创建了一个 wxPython GUI,它仅包含一个多行 TextCtrl,供用户输
我是 scrapy 和 python 的新手。我写了一个蜘蛛,它可以很好地处理初始化的 start_urls 值。 如果我在 Init 中的代码中放入文字,它也可以正常工作 { self.start_
我是 Python 和 Scrapy 新手。我希望 item['Source_Website'] 成为我正在抓取的网址。我怎样才能实现这个目标? 我尝试了 item['Source_Website']
我使用 scrapy 抓取 1000 个 url 并将抓取的项目存储在 mongodb 中。我想知道为每个网址找到了多少项目。从 scrapy stats 我可以看到 'item_scraped_co
我正在以与其他蜘蛛相同的结构运行我的蜘蛛,但对于这个特定的网站和这个特定的蜘蛛,它会在第一次请求启动 url 后关闭。可能是什么问题? 终端输出: ... 2022-04-03 17:42:34 [s
虽然我的简单代码根据 the official document 看起来不错,它会生成意外重复的结果,例如: 设置 3 个网址时为 9 行/结果 设置 2 个网址时为 4 行/结果 当我只设置 1 个
我想解析一个股票列表,所以我试图格式化我的 start_urls 的末尾列表,这样我就可以只添加符号而不是整个 url。 蜘蛛类 start_urls里面stock_list方法: class MyS
我有一个 ~2211 开始 url 的列表,scrapy 抓取了一些,但不是全部。当我将 start_url 设置为单个 url 时,它会抓取 URL,如果我在一个大列表中有 URL,scrapy 不
所以我正在使用 scrapy 库开发一个 scraper,为了便于使用,我想让它从 .csv 文件中获取它的起始 url。我已经对该主题进行了一些研究,我相信它可以正确地从 .csv 中获取 url,
背景(可略过): 我目前正在运行两个不同的 scrapy 爬虫。 第一个检索有关产品 x 的信息,第二个检索有关产品 x 的其他信息,这些信息是在第一个机器人抓取的 url 上找到的。 我的管道将每个
我已经从蜘蛛中抓取了项目,我正在编写另一个蜘蛛,它使用搜索引擎来填充一些缺失的数据。我想逐行更新第一个蜘蛛的项目。 但是,我不知道如何从 __init__ 方法传递当前行或 start_url。 我知
我正在创建 PWA 并偶然发现 manifest.json 文件中的“start_url”存在问题。我试图变成 PWA 的网站取决于查询参数,而 "start_url":"/"不会获取查询参数。 我尝
有没有办法在网络应用程序 list 中设置哈希值?类似的东西: "start_url": "/#/admin", 我试过了,但是不行。 有什么想法吗? 最佳答案 试试这个:"start_url": "
我是一名优秀的程序员,十分优秀!