我刮的页面包含:name,url1,url2 = 25项。在Url2中,我有一个字符串,包含这样的内容:“q=Dummy&bla=h”或“q=Dummy&bla=g”或“q=Dummy&bla=j”
所以我需要检查是否有“q=Dummy&bla=h”我们继续,否则我们删除name,url和url2
有“q=Dummy&bla=g”,“q=Dummy&bla=j”,然后转到下一个名称,url,url2。
我应该在哪里创建if else语句,这样我不仅可以删除url2,而且可以删除name和url1。
结果我们得到:21个名称,21个url1和21个url2,只包含“q=Dummy&bla=h”。
我确信我必须在www.example.com上写一些代码middlewares.py,但不知道在哪里。
请不要代码只需要一点提示,也许在DownloaderMiddleware类上我不知道。示例
class ExampleSpider(scrapy.Spider):
name = "Example"
allowed_domains = ["example.com"]
start_urls = ["https://www.example.com/page=1"]
def parse(self, response):
for selects in response.css('div.scrapdata'):
il = ItemLoader(item=ExampleItem(), selector=selects, response=response)
il.add_css('name', 'div.name')
il.add_css('img_link', 'img::attr(src)')
il.add_css('page_name', 'a::attr(href)')
yield il.load_item()
需要检查这个:
if "q=Dummy&bla=h" in il.add_css('page_name', 'a::attr(href)'):
WE parse name, img_link, page_name
else:
We go to next name, img_link, page_name
JSON中的数据:
{
"name":["Alex"], "img_link":"example.com/pics/Alex.jpg",
"page_name":"example.com/q=Dummy&bla=h/Alex.html"
}
1条答案
按热度按时间7cjasjjr1#
如果你像这样丢弃了5个URL:
并且想要删除包含bla=j或bla=g的URL:
你需要编辑管道,检查文档管道,例如谢谢你的回答