python - 如何使用Python Scrapy从该网站获取信息?

标签 python scrapy

我写了这段代码,但无法获得结果。这是我第一次尝试这个,我不知道我做错了什么。我运行并仅获取网站顶部团队的信息,而不是其他团队的信息。

import scrapy
from bs4 import BeautifulSoup
from scrapy.item import Field, Item
from scrapy.spiders import CrawlSpider
from scrapy.spiders import Rule
from scrapy.linkextractors import LinkExtractor
from scrapy.loader import ItemLoader
from scrapy.loader.processors import Join

class FichaClub(Item):
    nombre = Field()
    email = Field()
    zona = Field()

class SacaClubes(CrawlSpider):
    name="Spider100"
    start_urls = ["http://www.ecuafutbol.org/web/asociaciones.php"]
    allowed_domains = ['ecuafutbol.org']

    rules = (
        Rule(LinkExtractor(allow='asociacion_detalle.php*')),
        Rule(LinkExtractor(allow='club.php*'), callback= 'parse_items'),
    )

    def parse_items(self, response):
        item = scrapy.loader.ItemLoader(FichaClub(), response)
        item.add_xpath('email','//a[starts-with(@href, "mail")]/text()')
        item.add_xpath('nombre','//*[@id="gallery-post-1511"]/article/div/div/div/p/strong[1]/text()')
        yield item.load_item()

最佳答案

如果我错了,请纠正我,但看起来你正试图从垫底的球队中剔除。要抓取此数据,您必须指定 parse_items 来搜索 <div class="table-responsive"> .

然后,您可以遍历列表并打印出/对团队名称执行任何您想要的操作。这是我尝试使用的示例

 soccer = BeautifulSoup(start_urls, 'html.parser')
 table = soccer.findAll("div", class_="table-responsive")
 teams = []
for line in table:
       team_found = re.findall(r'([A-Z]\w+-*\w*)', line)
       teams = teams + team_found

试试这个。如果有问题,请修改行 table = soccer.findAll("div", class_="table-responsive")并将类名称更改为该表内的其他元素。确保使用 Chrome 的检查功能来分离 HTML。 希望这对您有帮助!

关于python - 如何使用Python Scrapy从该网站获取信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58066089/

相关文章:

python - 在单元测试中哪里捕获键盘中断?

python - 将 Python 代码转换为 Ruby

python - 有没有办法说服 python 的 getopt 处理选项的可选参数?

python - Scrapy:使用 CloudFlare 抓取网站时出现 503 错误

scrapy - 从无限滚动页面获取链接

python - 如何在 Raspberry Pi 上使用多重处理将数据发送到网站的同时接收来自传感器的数据?

python - 计算 Pandas Dataframe 索引之间的时间差

python - Django + Celery + Scrapy 扭曲 react 器(ReactorNotRestartable)和数据库(SSL 错误)错误

python - 使用 FormRequest.from_response() 模拟用户登录 - FormRequest 未定义

python - 卡在从页面中提取标题和下一页 url 上